我只有一个关于在backing beans方法上传递参数的问题。
我想在方法参数之间传递EL值,如:
<p:selectOneMenu id="somsgroup" value="#{store_itemController.filter_sgroup}">
<f:selectItems value="#{commonDataFunctions.getItemByName('store_sgroup', 'id', 'title', '[tb:store_sgroup][fd:title]=${store_itemController.filter_group}', '[tb:store_sgroup][fd:title]', true)}"/>
</p:selectOneMenu>
似乎${store_itemController.filter_group}
它没有被翻译,因为该方法就像字符串一样接收${store_itemController.filter_group}
。
有解决方案吗?
答案 0 :(得分:1)
你确实不能以这种方式嵌套EL表达式。 EL表达式只能内联。
您可以使用<c:set>
创建一个新变量,其中所需表达式以所需值内联,然后将此变量重用为另一个EL表达式的参数。
xmlns:c="http://java.sun.com/jsp/jstl/core"
...
<c:set var="filterGroup" value="[tb:store_sgroup][fd:title]=#{store_itemController.filter_group}" scope="request" />
...
<f:selectItems value="#{commonDataFunctions.getItemByName('store_sgroup', 'id', 'title', filterGroup, '[tb:store_sgroup][fd:title]', true)}"/>
答案 1 :(得分:-1)
我建议使用JBoss EL
。如果是这样,您需要在web.xml
中进行如下配置。
下载jar文件here并参考previous post。
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>