在PrimeFaces中填充两个组件

时间:2014-12-11 13:40:10

标签: ajax jsf primefaces

我有一个页面,当我选择文件夹名称时,我会填充两个组件(<p:selectManyMenu><p:pickList>)。如何调用两个动作?

<p:selectOneMenu id="dirObj"
                 value="#{patchMB.patchBean.directoryObjetos}" 
                 style="width: 350px">

    <p:message for="dirObj"/>
    <f:selectItem itemLabel="Selecione" itemValue="Select"/>
    <f:selectItems value="#{patchMB.dirObjects}"/>
    <f:ajax event="change" listener="#{patchMB.loadFiles}" render="pickListArq"/>
</p:selectOneMenu>

我可以使用两个<f:ajax>个事件代码吗?我试过了,似乎它正在执行每个监听器2次。

这是第二个动作的代码:

<f:ajax event="change"
        listener="#{patchMB.carregarSelectMany}"
        render="objSelectMany" />

1 个答案:

答案 0 :(得分:0)

为什么你需要两个ajax调用?仅使用一个操作无法弹出两个组件? 你把第二个ajax事件放在哪里了?

如果你想在同一个动作上执行两个不同的方法,你可以使用一个ajax调用,并将method2的逻辑放在method1中。

否则,还要评估使用valueChangeListener,它与ajax更改相比具有不同的行为。阅读这篇文章的更多内容: When to use valueChangeListener or f:ajax listener?