次のような表があります。
<h:panelGroup rendered="#{ImportFromCSVFile.step2Visible}">
<div style="width: 100%; overflow: auto; max-height: 400px;">
<tr:table id="step2ColumnMappings" var="columnMappingEntry" rows="0" rowBandingInterval="1" value="#{ImportFromCSVFile.columnMappings}">
<tr:column>
<tr:outputLabel value="#{columnMappingEntry.columnIndex}"/>
</tr:column>
<tr:column>
<tr:outputLabel value="#{columnMappingEntry.columnValue}"/>
</tr:column>
<tr:column>
<h:selectOneMenu value="#{columnMappingEntry.columnType}" validator="#{ImportFromCSVFile.validateColumnType}" onchange="submit()" valueChangeListener="#{ImportFromCSVFile.columnMappingChanged}">
<f:selectItems value="#{ImportFromCSVFile.columnsToBeMapped}" />
</h:selectOneMenu>
</tr:column>
</tr:table>
</div>
</h:panelGroup>
これは、3 つの列 (最初の 2 つのテキストと最後の 1 つのドロップダウン) を持つテーブルとして (適切に) レンダリングされます。ドロップダウンも、モデルの値に基づいて適切に初期化されます。
私がする必要があるのは、ドロップダウンの値が変更されるたびに何らかのロジックを実行できるようにすることです。コードでわかるように、valueChangeListener
onを使用することを考えていましたが、呼び出されません。selectOneMenu
今頭に浮かぶ唯一のことは、フォームが送信されたときに POST パラメーターを操作することですが、これは最適ではありません。
valueChangeListener
この状況で仕事をする方法を知っていますか? JSF 1.2。明らかな解決策や既知の解決策を見逃している可能性がありますが、残念ながら私は JSF の経験がほとんどなく、定期的に使用していません。
事前にどうもありがとうございました!
xmlns:h="http://java.sun.com/jsf/html"
xmlns:tr="http://myfaces.apache.org/trinidad"