jsf - 将 selectonemenu 中的 selectedValue 添加到列表

标签 jsf primefaces arraylist managed-bean selectonemenu

所以,这是交易: 我的 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/

相关文章:

java - 为 JSF 元素设置正确的值

java - 在 MySQL 和 Glassfish 中保存 ZonedDateTime

java - Primefaces 聊天应用程序 - web.xml 发现以元素开头的无效内容

primefaces - 在 Primefaces 数据表上延迟加载完整更新支持 bean

java - 如何在应用程序关闭后保存 arraylist<object>

c# - 使用 LINQ 填充列表

java - 如何将排序的Arraylist转换为BST

java - 未找到 JSF 方法,而应该是

jsf - 如何在JSF应用程序中实现注销过程

jsf - 遍历 JSF 1.2 中的列表