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



正如@BalusC在这里指出的那样,如何通过ajax将迭代参数传递给支持bean方法,可以将整个对象作为EL中的参数传递。

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

不同版本的JSF文档(JSF文档)是这样描述action属性的:

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

为什么action=#{bean.method(object)}有效?使用这种技术是可行的吗,或者它在未来的版本中不能工作?

编辑:

另外,正如@vasil-lukach所说,EL的文档允许这样做。事实上,正如(EL文档)中所说,对于EL2.2,可以使用:

<h:commandButton action="#{trader.buy('SOMESTOCK')}" value="buy"/>
这两种规格一致吗?

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

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

最新更新