3

所以,这就是交易:我有一个 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 个)添加一个状态实例......清楚吗?

4

1 回答 1

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;
}
于 2013-04-23T11:29:16.750 回答