2012-11-19 24 views
1

在我的托管bean中,我有一个hashmap:`HashMap> reqLeafData;从网页中的hashMap中检索数据

因此,对于每一个ReqLeaf我创建一个字符串列表来存储一些信息:

ReqLeaf reqLeaf=new ReqLeaf(pReqWrapper,(ReqFamily) requirement.getData()); 
       System.out.println(ReqWrapper.getCatString(reqLeaf.getCat())); 
       testReqsList.add(reqLeaf); 
       reqInfolist.add(ReqWrapper.getCatString(reqLeaf.getCat())); 
       reqInfolist.add(ReqWrapper.getStateString(reqLeaf.getStateFromModel())); 
       reqInfolist.add(ReqWrapper.getComplexString(reqLeaf.getComplexeFromModel())); 
       reqLeafData.put(reqLeaf,reqInfolist); 

所以在我ReqLeaf dataTable中我要检索的相关信息,以便下面的代码:

<p:dataTable id="testReqDT" var="testReq" value="#{projectTestManagementMB.testReqsList}"> 

            <p:column headerText="Id"> 
             <h:outputText value="#{testReq.idBdd}" /> 
            </p:column> 

            <p:column headerText="Name"> 
             <h:outputText value="#{testReq.longName}" /> 
            </p:column> 

            <p:column headerText="Category"> 
             <h:outputText value="#{projectTestManagementMB.reqLeafData(testReq)[0]}" /> 
            </p:column> 

` 

但我得到总是错误,因为这个值是不正确的writted:

<h:outputText value="#{projectTestManagementMB.reqLeafData(testReq)[0]}" /> 

reqLeafData is seen li柯的方法,而不是像属性:

Grave: javax.el.ELException: /manageProjectTestsReqPage.xhtml @1152,119 value="#{projectTestManagementMB.reqLeafData(testReq)[0]}": Unable to find method [reqLeafData] with [1] parameters 

所以如何通过使用ReqLeaf关键检索reqLeafData值?

任何帮助将不胜感激

回答

1

这里的解决方案:

#{projectTestManagementMB.reqLeafData[testReq][0]}

2

我觉得这个问题发生,因为你没有写你的地图getter和setter。你应该写他们,然后使用检索地图数据:

#{projectTestManagementMB.reqLeafData[testReq]} 

要访问内部地图列表项,你可以这样做:

#{(projectTestManagementMB.reqLeafData[testReq])[0]} 

最后一个表达式会从列表中获取第一个项目。

+0

谢谢你,但是这给了我清单“reqInfolist”,但如何进入这个名单的值 – AmiraGL