1

在支持 bean 方法上传递参数时,我只是有一个问题。

我想在方法参数之间传递一个 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}就像一个字符串一样接收。

有解决办法吗?

4

2 回答 2

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)}"/>
于 2012-10-22T12:03:57.787 回答
-1

我想建议使用JBoss EL. 如果是这样,您需要在web.xml. 在此处下载 jar 文件并参考上一篇文章

<context-param>     
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>
于 2012-10-22T12:00:11.277 回答