2

我看到几个问题询问如何将参数传递给 JSF 方法。使用 EL2.2 和 servlet 3.0,它使用户能够将参数传递给方法调用。一个例子:如何将参数从渲染的 h:outputText 传递给方法?问题是:在 JSF 2.x 中,每个标记属性都应该采用 ValueExpression 或 MethodExpression。在链接的示例中,“rendered”应该只采用 ValueExpression。但是,我确实看到它仍然可以与 MethodExpression 一起使用,如果我们放置 () 以明确它是一个方法调用而不是一个属性。这是 JSF 2.x 规范刚刚搞砸的东西还是我遗漏了什么?

4

1 回答 1

1

在值表达式中使用新的 EL 2.2 invoking-methods-with-arguments 语法不会自动使其成为方法表达式或其他东西。它仍然是一个价值表达。值表达式使用给定 EL 表达式的返回值作为值。方法表达式在与组件关联的操作事件上调用给定的 EL 表达式。

EL 表达式本身是否调用属性 getter 方法或带有参数的任意方法对于如何处理整个 EL 表达式实际上并不重要。

于 2012-04-18T02:31:23.113 回答