1

私はprimefaces 3.3.1、mojarra 2.1.3、netbeans 7.0.1を使用しています。

<p:dataTable id="approvalchainstable" var="department" value="#{viewApprovalChain.wfdepartments}">
   <p:columnGroup type="header">  
       <p:row>
          <p:column colspan="4" headerText="#{bundle.DepartmentNameFieldLabel}" />  
       </p:row>
       <p:row>  
          <p:column headerText="#{bundle.PostNameFieldLabel}"/>  
          <p:column headerText="#{bundle.ItemCountLabel} #{bundle.ApprovalLevelNameFieldLabel}"/>
          <p:column headerText="#{bundle.ViewLabel}"/>  
          <p:column headerText="#{bundle.LabelDelete}"/>    
       </p:row>  
   </p:columnGroup>  
   <p:subTable var="approvalchain" value="#{department.wfApprovalchainCollection}">  
       <f:facet name="header">  
          #{department.wfDepartmentName}   
       </f:facet>  
       <p:column>  
          #{approvalchain.idWfPost.wfPostName}  
       </p:column> 
       <p:column>  
          #{approvalchain.wfApprovalchainLevel}  
       </p:column> 
       <p:column>  
          <h:link outcome="/viewApprovalChainDetails" value="#{bundle.ViewLabel}">
            <f:param name="idWfApprovalChain" value="#{approvalchain.idWfApprovalchain}"/>
          </h:link>
       </p:column> 
       <p:column>  
          <p:commandButton value="#{bundle.LabelDelete}" 
                           title="Delete"
                           icon="ui-icon-trash"
                           action="#{viewApprovalChain.removeOneApprovalchain(approvalchain)}">
          </p:commandButton>
       </p:column> 
   </p:subTable>     
</p:dataTable>

そして、これが ViewScoped マネージド Bean メソッドです -> 上記のアクション呼び出しから渡されたパラメーターは、マネージド Bean で null に解決されます。したがって、 NullPointerException エラーが発生しました。

    public String removeOneApprovalchain(WfApprovalchain wfapprovalchaintoremove) {
    try {
        LogController.log.info("Removing approval chain flow for application " +
                wfapprovalchaintoremove.getIdWfApplication().getWfApplicationName() +
                " applicable for " + wfapprovalchaintoremove.getIdWfPost().getWfPostName() +
                " in " + wfapprovalchaintoremove.getIdWfDepartment().getWfDepartmentName());
        wfApprovalchainFacade.remove(wfapprovalchaintoremove);
        LogController.log.info("Reloading department names for the select one box");
        wfdepartments = wfDepartmentFacade.selectAll();            
    } catch (Exception ex) {
        LogController.log.fatal(ex.toString());
    } finally {
        return null;
    }
}

私はそれを正しくやったとかなり確信しています。しかし、wfapprovalchaintomove オブジェクトのパラメーターが常に null に解決されるのはなぜでしょうか? パラメータが素数サブテーブル内で正しく渡されないのはなぜですか? サブテーブルなしでデータテーブル内で試してみましたが、正しく機能しています。助けてください、あなたの助けは大歓迎です。

4

1 に答える 1

0

テストを行ったところ、パラメータが から正しく渡されましたp:subtablep:dataTable多分あなたの構築に何か問題がありますか?

于 2012-07-24T09:25:13.677 に答える