Jsf 将SelectOne菜单中的selectedValue添加到列表中

Jsf 将SelectOne菜单中的selectedValue添加到列表中,jsf,primefaces,arraylist,managed-bean,selectonemenu,Jsf,Primefaces,Arraylist,Managed Bean,Selectonemenu,那么,交易如下: 我的视图中有一个SelectOne菜单: <p:selectOneMenu value="#{personBean.person.personStates.state}" id="estadoRg" converter="entityConverter"> <f:selectItems value="#{stateBean.states}" var="state" itemLabel=#{state.name}" itemVa

那么,交易如下: 我的视图中有一个SelectOne菜单:

<p:selectOneMenu value="#{personBean.person.personStates.state}" id="estadoRg"
    converter="entityConverter">
    <f:selectItems value="#{stateBean.states}" var="state" 
        itemLabel=#{state.name}" itemValue="#{state}">
    </f:selectItems>
</p:selectOneMenu>


您应该通过
selectedState
值来处理它,然后您可以为特定的人绑定它:

<p:selectOneMenu value="#{stateBean.selectedState}" id="estadoRg"
    converter="entityConverter">
    <f:selectItems value="#{stateBean.states}" var="state" 
        itemLabel=#{state.name}" itemValue="#{state}">
    </f:selectItems>
</p:selectOneMenu>
和支持bean方法:

public void matchStates {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ElContext elContext = facesContext.getELContext();
    Object stateBean = elContext.getELResolver().getValue(elContext, null, "stateBean"). 
    State selectedState = stateBean.getSelectedState();
    personList.get(index).setState = selectedState;
}

好啊这让我头脑清醒。。。我唯一要改变的是,该方法将由ajax处理。。。。非常感谢
public void matchStates {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ElContext elContext = facesContext.getELContext();
    Object stateBean = elContext.getELResolver().getValue(elContext, null, "stateBean"). 
    State selectedState = stateBean.getSelectedState();
    personList.get(index).setState = selectedState;
}