切换到Facelets后,setActionListener不再与actionListener一起执行(第一个)

时间:2014-02-07 13:28:23

标签: jsf actionlistener facelets trinidad

我们最近转换为使用Facelets(1.1.14)的这个Trinidad 1.2应用程序。我们能够使用一些查找和替换操作来解决大多数问题。现在我们遇到了一个无法修改多个代码实例而无法解决的问题。

问题在于,如果我们在命令按钮上使用actionListener并与子<tr:setActionListener />结合使用:

<tr:commandButton actionListener="#{someBean.toggleSomeObject}"
                  immediate="true"
                  ...>
  <tr:setActionListener from="#{rowObject}" to="#{someBean.someObject}"/>
</tr:commandButton>

切换到Facelets后,<tr:setActionListener />不再执行(第一个)。我尝试用<tr:setActionListener />替换<f:setPropertyActionListener />,但结果是一样的。

我能想到的唯一选择是使用<f:attribute/>并在动作侦听器中读取属性,但这需要我更改多个动作侦听器方法。

我希望还有其他选择需要更少的工作。

1 个答案:

答案 0 :(得分:0)

此行为是预期的。它以前“工作”只是由一个错误造成的。你不应该依赖有缺陷的行为。

使用<tr:commandButton action>代替(并且不要忘记摆脱ActionEvent参数)。

另见: