gpt4 book ai didi

java - 如何关联两个 selectManyListbox?

转载 作者:行者123 更新时间:2023-12-04 06:19:46 24 4
gpt4 key购买 nike

我正在使用 JSF2.0/primefaces ,我有两个 selectManyListbox

   <h:selectManyListbox   value="#{ToolsJIRA.selectedProjects}"  size="3">
<f:selectItems value="#{ToolsJIRA.getMyListProject()}" />

</h:selectManyListbox>

<h:selectManyListbox value="#{TestAjax.selectedstatus}" size="3">
<f:selectItems value="#{TestAjax.StepsByProject()}" />
</h:selectManyListbox>

第二个 selectManyListbox 与第一个 selectManyListbox 相关(当用户从​​第一个中选择选项时,第二个将被填充),
我如何将它们联系起来?

最佳答案

使用 <f:ajax> .

<h:selectManyListbox value="#{bean.selectedProjects}" size="3">
<f:selectItems value="#{bean.availableProjects}" />
<f:ajax listener="#{bean.updateAvailableSteps}" render="steps" />
</h:selectManyListbox>

<h:selectManyListbox id="steps" value="#{bean.selectedSteps}" size="3">
<f:selectItems value="#{bean.availableSteps}" />
</h:selectManyListbox>


public void updateAvailableSteps() {
availableSteps = new ArrayList<Step>();

for (Project selectedProject : selectedProjects) {
availableSteps.addAll(selectedProject.getSteps());
}

// If you want to filter duplicates, add the following line as well:
// availableSteps = new ArrayList<Step>(new LinkedHashSet<Step>(availableSteps));
}

在输入组件中, <f:ajax>默认在每个 change 上触发事件。触发时,bean 方法在 listener 中声明属性将被调用,组件定义在 render属性将被更新。

关于java - 如何关联两个 selectManyListbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6731022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com