将参数传递给h:outputtext标记中的方法

Pun*_*cky 8 jsf el

我想通过将属性传递给在backing bean中实现的方法来在jsf屏幕中显示文本.我必须将动态值作为属性传递.我尝试了以下但它似乎是一个不正确的语法 -

<h:outputText value="#{getValue(#{item.product}).component.address}" />
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 11

除了语法错误(你永远不能像EL那样嵌套EL表达式#{#{}})之外,以下内容在EL 2.2中有效,而后者又是Servlet 3.0/Java EE 6的一部分:

<h:outputText value="#{bean.getValue(item.product).component.address}" />
Run Code Online (Sandbox Code Playgroud)

因此,如果你有一个与Servlet 3.0兼容的Servlet 3.0兼容目标运行时(Tomcat 7,Glassfish 3,JBoss 6等)web.xml,那么你可以使用这样的参数调用非getter方法.

但是,根据您的问题历史记录,您使用的是JSF 1.2,而且您也可能将目标锁定在旧容器上,而上述容器无效.如果它是一个Servlet 2.5容器,那么你可以使用JBoss EL来使这个EL语法工作.

也可以看看: