为什么JSF 2.x的与EL 2.2允许MethodExpression的到位ValueExpres

2019-09-16 14:57发布

我看到几个问题,询问如何将参数传递到JSF的方法。 与EL2.2和servlet 3.0,它使用户将参数传递到方法调用。 一个例子是: 如何将参数从渲染^ h传递给方法:的outputText? 现在的问题是:在JSF 2.x中,每一个标签属性应该采取任何ValueExpression或MethodExpression的。 在链接的例子,“渲染”应该只需要ValueExpression。 不过,我看它仍然MethodExpression的工作,如果我们把()要清楚这是一个方法调用,而不是一个属性。 这事的JSF 2.x的规范只是搞砸还是我失去了一些东西?

Answer 1:

在值表达式中使用新的EL 2.2调用的方法 - 与论点语法并不自动地使一个方法表达什么。 它仍然是一个值表达式。 值表达式使用给定EL表达式作为值的返回值。 一种方法表达调用在与所述组件相关联的操作事件的给定EL表达。

无论是在自己的EL表达式调用一个属性的getter方法或带参数的任意方法其实并不重要,至于如何在整个EL表达式处理。



文章来源: How come JSF 2.x with EL 2.2 allows MethodExpression in place for ValueExpression?