1

タイプ Action の dataTble cotaining オブジェクトがあり、ユーザーはそれを変更するアクションを選択できるので、変更する前に古いアクションを取得したいので、 onStart 属性を試してみましたが、このエラーが発生しました:

oct. 15, 2012 11:42:12 AM 
 com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit 
 Grave: javax.el.PropertyNotFoundException: /manageProjectTestsPage.xhtml @342,417       
 onstart="#{projectTestManagementMB.initOldAction}": Property 'initOldAction' not found 
 on type tn.talan.testFramework.managedBean.ProjectTestManagementMB

コードは次のとおりです。

    public String initOldAction(){
     String index=(String)    

     FacesContext.getCurrentInstance().getExternalContext().
     getRequestParameterMap().get("index");
 System.out.println("index "+index);

  oldSelectedAction =testActionList.get(Integer.parseInt(index));
  return null;

}

xhtml:

 <p:column headerText="Options">  

     <p:commandLink id="modifyManualActionBtn" style="margin-right:5px"     onstart="# 
     {projectTestManagementMB.initOldAction}"  actionListener="#
      {projectTestManagementMB.verifyTestDisponibilityActionModifying}"  
      title="modify" update=":form:growl :form:testTabView:confirmModifyActionDialog 
      :form:testTabView:addModifyActionDlg" disabled="#
       {projectTestManagementMB.modifyBtnFlag}">
       <h:graphicImage value="../images/cssImg/modify_icon.png" heigth="13"width="17"/>
       <f:param name="index" value="#{rowIndex}" />
      </p:commandLink>
  ....

では、actionListener を実行する前に onstart 属性を使用して古いアクション値を取得する方法actionListener="# {projectTestManagementMB.verifyTestDisponibilityActionModifying}" と、それを使用できない場合、別の解決策はありますか?

4

1 に答える 1

2

onstart属性は、ajax リクエストが開始される前に実行する Javascript 式に設定する必要がある値属性であるため、このエラーを取得しています。ここで EL 式を使用できますがactionListener、メソッド式を期待するのとは異なります。

の EL 式に括弧がないことによりonstart、JSF はこれをメソッドではなく管理プロパティの呼び出しと見なします。代わりにこれを試してください:

onstart="#{projectTestManagementMB.initOldAction()}"

initOldAction()ただし、メソッドはJavascript式を含む文字列を返さないため、これは実際の問題ではありません。この属性は、あなたが思っているようには機能しないと思います。これは単なるクライアント側のコールバックです。

于 2012-10-15T11:49:24.480 に答える