richfaces dataTable を実装しようとしています。各行には、richfaces カレンダー、2 つの richfaces オートコンプリート、および 3 つの入力テキストがあります。
別の形式でコマンド ボタンがあります。データ テーブルの特定の行に値を入力すると、次のようになります。
- 有効な日付が表示されます
- 2 つのオートコンプリートは、Bean からデータ選択を取得するために正常に動作します
- 入力テキストに値を入力します
しかし、「Compute」ボタンをクリックすると、テキスト入力のみがバッキング Bean に送り返されます。
これまでのところ、私が思いついたものです(これは私のxhtmlファイルの簡略化されたバージョンです)
<h:body>
<rich:panel>
<h:form id="legForm">
<rich:dataTable value="#{bean.legsForDisplay}" var="legForDisplay">
<rich:column>
<f:facet name="header">
<h:outputText value="Departure Date (UTC)" />
</f:facet>
<rich:calendar value="#{legForDisplay.departureTime}"
locale="#{bean.locale}" popup="true"
datePattern="#{legForDisplay.datePattern}"
converter="dateConverter" inputStyle="width:80px">
<f:ajax event="change" execute="@this"/>
</rich:calendar>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="ETD (HHmm)" />
</f:facet>
<h:inputText value="#{legForDisplay.etd}" style="width : 30px;">
<f:ajax event="change" execute="@this"/>
</h:inputText>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="ADEP" />
</f:facet>
<rich:autocomplete mode="cachedAjax" minChars="2"
autocompleteMethod="#{bean.autocomplete}"
autofill="false" value="#{legForDisplay.adep}">
<f:ajax event="change" execute="@this"/>
</rich:autocomplete>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="ADES" />
</f:facet>
<rich:autocomplete mode="cachedAjax" minChars="2"
autocompleteMethod="#{bean.autocomplete}"
autofill="false" value="#{legForDisplay.ades}">
<f:ajax event="change" execute="@this"/>
</rich:autocomplete>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Male Pax" />
</f:facet>
<h:inputText value="#{legForDisplay.malePax}">
<f:ajax />
</h:inputText>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Female Pax" />
</f:facet>
<h:inputText value="#{legForDisplay.femalePax}">
<f:ajax />
</h:inputText>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Child Pax" />
</f:facet>
<h:inputText value="#{legForDisplay.childPax}">
<f:ajax />
</h:inputText>
</rich:column>
</rich:dataTable>
</h:form>
</rich:panel>
<rich:panel>
<h:form>
<a4j:commandButton value="Compute Mission"
action="#{bean.doStuff}"
render="@form">
</a4j:commandButton>
</h:form>
</rich:panel>
</h:body>
カレンダー/オートコンプリート コンポーネントの値をListの対応するlegForDisplay
要素に設定するにはどうすればよいですか?legsForDisplay
この件に関する関連するすべての質問を読み込もうとしましたが、この問題の解決策を見つけることができませんでした。これはかなり基本的なようです...
ありがとう
編集 :
リッチ データ テーブル内にダミーの送信ボタンを配置すると、すべてが機能します。このダミー ボタンを押すと、「compute Mission」と値が既に Bean に格納されています。
<a4j:commandButton value="Submit"
action="#{missionHandler.dummySubmit}" limitRender="true"
render="legTable">
</a4j:commandButton>
私の懸念は、最初に「ダミーボタン」をクリックせずに、別のパネルにある「Compute Mission」ボタンから別のフォームで送信したいということです。