我在表中有两个SelectOneMenu。我需要根据第二个菜单中填充的数据来填充数据。我需要绕过验证阶段,因为。我将行动态添加到表中。

+-- Table ---------------------------------------------------+
|                           |                                |
| Field 1: |____________|v| |  Field 2.1: |____________|v|   |
+---------------------------+--------------------------------+
| Field 1: |____________|v| |  Field 2.2: |____________|v|   |
|                           |                                |
+------------------------------------------------------------+


有我的代码:


                    <h:selectOneMenu value="#{rowItem.selectedItem1}"  immediate="true" valueChangeListener="#{rowItem.processValueChange}"
                                     onchange="submit()">
                        <f:selectItems value="#{rowItem.selectItems1}" />
                    </h:selectOneMenu>
                </h:column>
                <h:column>
                    <h:selectOneMenu value="#{rowItem.selectedItem1}" >
                        <f:selectItems value="#{rowItem.seriesItems2}" />
                    </h:selectOneMenu>

               ..... some more elements
            </h:dataTable>


在我的餐桌后备豆上

 private ArrayList<RowItem> rowItems;


我想在代表RowItem的类中使用processValueChange(),但是我不能,因为我无法在RowItem类中绑定SelectOneMenu。

最佳答案

为什么在rowItem bean中具有所有这些逻辑?

您可以使用Richfaces框架吗?

如果您愿意,那么您将能够大致执行以下操作:

<h:selectOneMenu value="#{rowItem.selectedItem1}">
  <f:selectItems value="#{rowItem.selectItems1}" />
  <a4j:support event="onchange" ajaxSingle="true" action="#{helperBean.loadSeriesItems2}" reRender="areaToRender"/>
</h:selectOneMenu>

07-24 13:12