如何使用JSF组件中的EL表达式将参数传递给支持bean?

时间:2013-07-02 14:41:11

标签: jsf jsf-1.2

我有这个组件:

<t:outputText value="#{bean.name}">

我想在EL表达式中使用参数调用方法,而不是调用getter,但我没有JSF 2.0。

如何使用EL将参数传递给辅助bean中的方法 没有JSF 2.0的表达式?

换句话说,我想做这样的事情:

 <t:outputText value="#{bean.findName(#{bean.name})}">

外表达式:在辅助bean中调用带参数的方法。

内在表达:调用getter作为方法中的参数。

支持bean中的方法:

public String findName(String name){


}

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

方法参数是EL 2.2的一项功能,因此您需要下载相应的JAR并将其添加到项目中。如果您使用的是Maven,请转到此链接

https://uel.java.net/download.html

(或直接前往Maven中心)

然后在web.xml中添加以下内容

<context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

编辑

这是您评论的后续内容。你可以这样做。

<h:inputText value="#{bean.id}">  <---This one will set the id
<h:outputText value="#{bean.name}"> <--- This one will display the name

并定义你的方法

private Integer id; //Make setter and getter
private String name; //Make setter and getter for this. 

private Integer setId(Integer id) { //Make a getter also
   name = findName(id); // <--- Set the name property there
}

public String findName(Integer id) { 

    return name found in db; 

}

这只是一个想法。