2012-05-08 12 views
0

ここでも私はJSFの問題を抱えていますが、今回はrichfaces(4.2.1 final、JSF 2)の詳細です。私はeyTended DataTableを持っていて、新しいアイテムを追加したい。 Journey-objectsのリストはありません。すべての属性にはgetterとsetterがあります。テーブルがうまく作成されます(リストにはすでにいくつかの項目があります)。 、メソッドが呼び出されたproperply editorBeanがあるポップアップパネルで新しいデータオブジェクトを作成すると失敗する

<a4j:commandButton ajax="true" value="Neue Fahrt hinzufügen" 
    actionListener="'{editorBean.prepareCreateJourney}" render="createJourneyPopupForm" 
    oncomplete="#{rich:component('createJourneyPopup')}.show()" /> 

SessionScopedとcurrentJourneyと呼ばれるJourneyの新しいオブジェクトを作成します。そして今、私は「新しい項目を追加」ボタンをクリックしてください。ポップアップが立ち上がると、私はいくつかの入力を挿入できるようにする必要があります:私はボタンをクリックすると

<rich:popupPanel id="createJourneyPopup" modal="true"> 
    <h:panelGrid id="createJourneyPopupForm" columns="3"> 
     <h:outputLabel for="currentId" value="ID" /> 
     <h:inputText id="currentId" 
      value="#{editorBean.currentJourney.journeyNumber}" /> 
     <rich:message for="currentId" /> 
     [...and more...] 
    </h:panelGrid> 

    <a4j:commandButton value="Save" 
     execute="currentId currentTrainType operator"> 
     <f:ajax event="click" listener="#{editorBean.doCreateJourney}" 
      render=":vmsEditorForm:resultTable" /> 
     <rich:componentControl target="createJourneyPopup" operation="hide" /> 
    </a4j:commandButton> 
    <a4j:commandButton value="Abbrechen" 
     onclick="#{rich:component('createJourneyPopup')}.hide();" /> 
</rich:popupPanel> 

、方法doCreateJourneyが呼び出さが、currentJourneyが空です。作成後のデフォルトのJourneyオブジェクトです。 setterは呼び出されていませんでした。入力フィールドにはヒントがあります。

名前を2回確認しましたが、必要なオブジェクトのゲッターとセッターがあります。私は範囲を変更しようとしましたが、効果はありません。オブジェクトは同じです。準備メソッドではJourney(id=151)を作成し、保存メソッドではまだJourney(id=151)です。

ここでは何が起こっていますか?データオブジェクトを作成したり編集したりするためのダイアログを作るのは難しいことではありません。聞いていただきありがとうございました。

答えて

1

データを正しく送信するには、入力とコマンドボタンの両方をフォームにラップする必要があります。

<rich:popupPanel id="createJourneyPopup" modal="true"> 
    <h:form> 
     ... the content of your popupPanel 
    </h:form> 
</rich:popupPanel> 

よろしく、

+0

さて、私は同様の編集ダイアログのためにここに見えた:http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=dataTable&sample=dataTableEdit そして、 popupPanelは同じにあります。しかし、あなたが正しいです、それは2つのフォームを作成し、最初のの外にダイアログを含めることは正しいです。そして、これは動作しています!ありがとうございました! – Felix

関連する問題