我有这个组件:
<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){
}
非常感谢! :)
答案 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;
}
这只是一个想法。