java - 如何从 SelectOneMenu 中的选定项目更新 JSF SelectManyListBox 项目?

标签 java jsf-2

我有以下组件:

                     <h:selectOneMenu id="company" 
                                 value="#{companyController.selected.companyId}" 
                                 onchange="?????????">

                    <f:selectItems value="#{companyController.itemsAvailableSelectOne}"/>
                </h:selectOneMenu>

                <h:outputLabel value="some value" for="locations" />

                <h:selectManyListbox id="locations" >
                    <f:selectItems value="#{companyController.selected.locationCollection}"/>
                </h:selectManyListbox>

每次在 SelectOneMenu 中选择一家公司时,我都需要更新 SelectManyListBox 中的项目。

请帮助我

非常感谢!

最佳答案

您将想要使用 <f:ajax> 。也许是这样的:

            <h:selectOneMenu id="company" 
                             value="#{companyController.selected.companyId}">
                <f:ajax event="valueChange" execute="@this" render="@this locations" />
                <f:selectItems value="#{companyController.itemsAvailableSelectOne}"/>
            </h:selectOneMenu>

            <h:outputLabel value="some value" for="locations" />

            <h:selectManyListbox id="locations" >
                <f:selectItems value="#{companyController.selected.locationCollection}"/>
            </h:selectManyListbox>

然后你可以修改你的selected对象 setCompanyId更新locationCollection的方法:

public void setCompanyId( long companyId ) {
    this.companyId = companyId;
    // now update your location collection
    this.locationCollection = locationCollectionMap.get( companyId );
}

关于java - 如何从 SelectOneMenu 中的选定项目更新 JSF SelectManyListBox 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258401/

相关文章:

Java Gradle 在一个任务中复制 2 个不同的文件夹

java - 如何实现Android详细通知?

java - 如何返回已加入的 hibernate 实体的列表?

ajax - 将服务器端消息/异常与 AJAX 请求链接

java - 列表包含的方法不适用于具有相同属性的两个不同类

Java 时间即时格式差异

ajax - 如何重新渲染 <ui :repeat> using <f:ajax render>

jsf-2 - PrettyFaces、过滤器和 url 模式问题

jsf-2 - Primefaces 选择器不更新 panelGroup

ajax - JSF - 在 ajax 调用中传递参数 - 这段代码有什么问题?