JSF:传递整个对象作为EL中的参数是标准的吗?

时间:2014-03-26 17:21:28

标签: ajax jsf jsf-2 el

正如@BalusC在这里指出How to pass an iterated parameter via ajax to a backing bean method,可以将整个对象作为EL中的参数传递。

在JSF2中,使用action=#{bean.method(object)}有效,但我不明白如何

各种版本的JSF (JSF doc)的文档说明action attrubute:

  

表达式必须求值为不带参数的公共方法

为什么action=#{bean.method(object)}有效? 是否可以使用此技术进行重复使用,或者在将来的版本中无法使用?

修改

另外,正如@ vasil-lukach所说,EL的文件允许它。事实上,如(EL doc)中所述,使用EL2.2,可以使用:

<h:commandButton action="#{trader.buy('SOMESTOCK')}" value="buy"/>

这两个规格是否一致?

1 个答案:

答案 0 :(得分:1)

调用的方法有两个版本。如果EL表达式根本不包含任何参数,则调用第一个。在这种情况下,调用的方法确实不能包含任何参数。在actionListener的情况下,它必须具有完全规定的事件参数。

如果提供参数,那么这些参数将由EL实现本身绑定,并且将调用与这些参数对应的bean中的方法。在这种情况下,JSF本身提供的任何参数(如事件实例)都将丢失。