有一个这样的表:
<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>
它(正确地)呈现为具有三列的表格:前两列中的文本和最后一列中的下拉列表。下拉菜单也根据模型中的值正确初始化。
我需要做的是能够在任何下拉列表中的值发生变化时运行一些逻辑。正如您在代码中看到的那样,我正在考虑使用valueChangeListener
on selectOneMenu
,但它没有被调用。现在唯一想到的是在提交表单时使用 POST 参数,这不是最佳选择。
你知道我如何才能valueChangeListener
在这种情况下工作吗?JSF 1.2。我可能遗漏了一个明显或已知的解决方案,但不幸的是,我以前使用 JSF 的经验非常少,并且没有定期使用它。
非常感谢您!
xmlns:h="http://java.sun.com/jsf/html"
xmlns:tr="http://myfaces.apache.org/trinidad"