1

我有这个组件:

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

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

如何在没有 JSF 2.0 的情况下使用 EL 表达式将参数传递给支持 bean 中的方法?

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

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

外部表达式:在支持 bean 中调用带有参数的方法。

内部表达式:调用 getter 以用作方法中的参数。

支持bean中的方法:

public String findName(String name){


}

提前谢谢!:)

4

1 回答 1

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; 

}

这只是一个想法。

于 2013-07-02T16:11:32.643 回答