1

私の管理対象 Bean には、ハッシュマップがあります:`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 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>  

`

しかし、この値が正しく書き込まれていないため、常にエラーが発生します。

<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

マップのゲッターとセッターを作成しなかったために問題が発生したと思います。それらを記述してから、次を使用してマップからデータを取得する必要があります。

#{projectTestManagementMB.reqLeafData[testReq]}

マップ内のリスト項目にアクセスするには、これを使用できます。

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

最後の式は、リストから最初のアイテムを取得します。

于 2012-11-19T08:59:25.157 に答える
1

ここに解決策があります:

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

于 2012-11-19T09:11:46.337 に答える