如何更改组件的处理顺序

时间:2014-11-14 11:56:55

标签: jsf primefaces

我有selectOneMenueditor。我想要的是在editor的值之前提交selectOneMenu的值。代码看起来像这样

<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树中的顺序提交的? (当我改变输入字段的顺序时,它按照我的意愿工作) 解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您不应该依赖代码中的布局或处理顺序等内容。如果问题是itemText更改selectedItem时重置String text值,则将文本绑定到单独的selectedItem.text bean变量,并在其他一些代码中更新<p:ajax listener="#{...}",也许{ {1}}。