2011-07-25 3 views
2

現在、データテーブルからダイアログにデータを渡して、何らかのアクションを確認しようとしています。私の問題は、Beanをダイアログに渡すと問題なく動作しますが、保存ボタンをクリックして保存しようとすると、nullと表示されます。JSF/primefaces - プロパティをダイアログに渡す

コード:

<p:column> 
<p:commandButton value="Mark" update="showPlayers:display" oncomplete="userDialog.show()" > 
    <f:setPropertyActionListener value="#{user}" target="#{manageUser.selectedUser}" /> 
</p:commandButton> 
</p:column> 
... 
<p:dialog header="Mark" widgetVar="userDialog" resizable="true" id="userDlg" 
         width="400" showEffect="fade" hideEffect="explode" modal="true"> 
    <h:panelGrid id="display" columns="2" 
      <!-- this below works fine --> 
     <h:outputText value="#{manageUser.userSelected.email}"/>      

     <p:commandButton ajax="false" value="Save" actionListener="#{manageUser.addNewFeature}" oncomplete="userDialog.hide()" /> 

    </h:panelGrid> 
</p:dialog> 

私は豆とaddNewFeature仕事はそれをnullとNullPointerExceptionがスローすることを決議ユーザが選択した方法にしてみてください。私は実際にこのインスタンスへの参照を失った場所はわかりません。このBeanはリクエストスコープです。

ご意見ありがとうございます。

答えて

5
  1. は、Aは、Beanは限り、あなたは アクションメソッドからnullまたはvoidを返すとして生きる(したがって、同じビューに戻って移動)します@ViewScoped。
  2. @RequestScoped Beanはすべての要求の最後までにガベージされ、すべての新しいリクエストには が再作成され、元の のプロパティがすべて失われます。

変更範囲を表示するようにしてください。

http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html

+0

私はそれが私の悩みを解決します望んでセッションスコープを試してみました。だから私は構造を変更しますが、あなたの答えに感謝します。 – Smolda

関連する問題