1

在我的托管 bean 中,我有一个 hashmap:`HashMap > reqLeafData;

因此,对于每个 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 数据表中我想检索信息所以这里是代码:

<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>  

`

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

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

reqLeafData 被视为一种方法,而不是类似的属性:

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

那么如何使用 ReqLeaf 作为键从 reqLeafData 中检索值?

任何帮助将不胜感激

4

2 回答 2

2

我认为出现这个问题是因为您没有为地图编写 getter 和 setter。您应该编写它们,然后使用以下方法从地图中检索数据:

#{projectTestManagementMB.reqLeafData[testReq]}

要访问地图内的列表项,您可以使用以下命令:

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

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

于 2012-11-19T08:59:25.157 回答
1

这是解决方案:

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

于 2012-11-19T09:11:46.337 回答