所以,这是交易: 我在视图中有一个selectOneMenu:
<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>
其中personStates是包含person,state n date的列表。 是否可以将itemValue中的值直接添加到personStates列表中? (我的PersonModel中有一个addPersonState方法autobuilt)
如果没有,我应该怎么做? 我不想在我的personBean中为每个selectOneMenu(将是5)添加一个状态实例... 它清楚了吗?
答案 0 :(得分:2)
您应该通过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>
这是p:selectOneMenu
的使用方式,能够绑定选定的状态,而且人们调用方法:
<p:commandButton actionListener="#{personBean.matchStates}" />
支持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;
}