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监听器,您已经拥有了它。不管怎样,很高兴你成功了。