所以,这是交易: 我的 View 中有一个 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 是一个包含人员、状态 n 日期的列表。 是否可以将 itemValue 中的值直接添加到 personStates 列表中? (我的 PersonModel 中有一个自动构建的 addPersonState 方法)
如果没有,我应该怎么做? 我不想为我的 personBean 中的每个 selectOneMenu(将为 5)添加一个状态实例... 清楚了吗?
最佳答案
你应该通过selectedState
值来处理它,然后你可以为特定的人绑定(bind)它:
<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
的使用方式,能够绑定(bind)选定状态和调用方法的人:
<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;
}
关于jsf - 将 selectonemenu 中的 selectedValue 添加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16167419/