我看到几个问题,询问如何将参数传递给JSF方法。使用EL2.2和servlet 3.0,它使用户可以将参数传递给方法调用。 一个例子:How to pass an argument to method from rendered h:outputText?问题是:在JSF 2.x中,每个标签属性都应该采用ValueExpression或MethodExpression。在链接的例子中,“渲染”应该只采用ValueExpression。但是我确实看到它仍然适用于MethodExpression,如果我们把()清除它是一个方法调用而不是一个属性。这是JSF 2.x规范刚刚搞砸了还是我错过了什么?为什么EL 2.2的JSF 2.x允许MethodExpression用于ValueExpression?
2
A
回答
1
在值表达式中使用新的EL 2.2 invoking-methods-with-arguments语法不会自动使其成为方法表达式或其他东西。这仍然是一个价值表达。值表达式使用给定EL表达式的返回值作为值。方法表达式在与组件关联的动作事件时调用给定的EL表达式。
EL表达式本身是否调用属性getter方法或具有参数的任意方法对于如何处理整个EL表达式无关紧要。
相关问题
- 1. JSF EL 2.2。参数绑定
- 2. JSF MethodExpression的javax.el.PropertyNotFoundException
- 3. javax.servlet.jsp.JspException:Tomcat 5.5中的javax/el/ValueExpression
- 4. 为什么在Swift 2.2的AnyObject上不允许使用下标?
- 5. JSF 2.2中的EL表达式
- 6. 当“return x”被允许时,为什么必须使用“this.x = x”?
- 7. 如何使用JSF 2.0和EL 2.2为Tomcat 7配置Maven pom?
- 8. 为什么Java允许int x []和int [] x?
- 9. 为什么java允许NPE
- 10. %为什么不允许
- 11. 何时使用EL 2.2引入的参数化方法调用(特别是在JSF 2.x中)?
- 12. 为什么kibana 3.x不适用于弹性搜索2.x?
- 13. JSF 2.1 ValueExpression中的动作属性
- 14. 为什么C++不允许使用typeof?
- 15. 为什么Point允许你直接访问x和y?
- 16. Spring EL&JSF
- 17. 在OS X中不允许“sudo pip卸载”操作(/ tmp)El Capitan
- 18. 为什么我的XMLHttpRequest不允许XSS?
- 19. 为什么允许空的wchar_t文字?
- 20. 为什么动态创建的JSF EL值表达式未解析?
- 21. 为什么存在x ++和++ x,x + = 2但不是x = + 2?
- 22. Java关键字不允许作为EL标识符
- 23. 为什么在许多cache.h文件中使用'#define alloc_nr(x)(((x)+16)* 3/2)'宏?
- 24. 为什么不能2-3树“允许”度1
- 25. 为什么Convert.FromBase64()只允许2个填充字符? (C#)
- 26. JSF自定义组件错误+ ValueExpression
- 27. JSF ValidateRegex允许换行
- 28. 为什么不允许在OpenMP中共享类成员变量x(x)?
- 29. 为什么Java不允许基于类型参数的重载?
- 30. 为什么Bitset允许不同于1和0的值?
BalusC,非常感谢您的快速回复。我喜欢你的JSF博客,它对我有很大的帮助。你的回答是有道理的。但是我仍然有困惑。使用EL的技术(例如JSF 2.x)决定EL是否被视为ValueExpression或MethodExpression。因此,如果对于JSF操作属性,我使用action =“aBean.aMethod()”,如果aMethod返回文字字符串“aBean.action”,那么您是否说在aBean中的操作方法将被调用? EL表达式中的声音总是在JSF的机制之前首先被调用,如果我们在EL中有(),那么它将使用getter而不是调用方法。 – 2012-04-18 13:42:50
不,它是以每个属性为基础来决定的标签处理程序。您可以在[标签文档](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/)中看到它的处理方式(选中“类型”列,例如[ 'H:commandButton'](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/h/commandButton.html))。这不依赖于EL语法。 – BalusC 2012-04-18 13:44:16
同意,标签处理程序决定。但标签处理程序来自JSF实现。所以这是JSF决定的。我刚刚修改了这些意见。如果你有时间,你能详细说明一下吗?谢谢。 – 2012-04-18 13:49:48