Jsf 如何更改组件的处理顺序

Jsf 如何更改组件的处理顺序,jsf,primefaces,Jsf,Primefaces,我有一个selectone菜单和一个编辑器。我想要的是在选择菜单的值之前提交编辑器的值。代码如下所示 <p:selectOneMenu value="#{myBB.selectedItem}"> <f:selectItems value="#{myBB.selectItems}"/> <p:ajax event="change" process="itemText @this" update=":mainForm"/> </p:selectOne

我有一个
selectone菜单
和一个
编辑器
。我想要的是在
选择菜单的值之前提交
编辑器的值。代码如下所示

<p:selectOneMenu value="#{myBB.selectedItem}">
  <f:selectItems value="#{myBB.selectItems}"/>
  <p:ajax event="change" process="itemText @this" update=":mainForm"/>
</p:selectOneMenu>

<p:editor id="itemText" value="#{myBB.selectedItem.text}"/>

看起来
process=“itemText@this”
中元素的顺序无关紧要,因为当我更改它时,值以不变的顺序提交

问题是,在提交编辑器中的值之前,编辑器的
selectedItem
会被选择更改

我说的对吗,顺序无关紧要,它是根据DOM树中的顺序提交的?(当我更改输入字段的顺序时,它将按我所希望的方式工作)
解决这个问题的最佳方法是什么?

您不应该在代码中依赖布局或处理顺序之类的东西。如果问题是
itemText
值在
selectedItem
更改时被重置,那么将文本绑定到单独的
String text
bean变量,并在其他一些代码中更新
selectedItem.text
,可能
p:editor不支持ajax。我找到了一种通过remotecommand实现这一点的方法,但它的过期性很差。最后,我决定在tabview中创建多个编辑器(我只需要4个选项),现在我想它更全面了。无论如何,谢谢你help@NeplatnyUdaj我指的是
selectOneMenu
中的ajax监听器,您已经拥有了它。不管怎样,很高兴你成功了。