我有一个像这样的对象
public class Employee {
public String getName() {
return "tommaso";
}
public String getName(String name) {
return "tommaso "+name;
}
}
在我的动作中(我使用Struts)我设置了一个对象Employee的参数。
request.setAttribute("emp",employeeInstance);
之后在jsp中我写了这段代码
${emp.name}
,输出
tommaso
如果我想使用第二种方法public String getName(String name) { ... }
,可以使用相同的正式文字${emp. ...something passing a parameter... }
吗?
答案 0 :(得分:7)
如果您使用web.xml
符合Servlet 3.0规范来定位Servcat 3.0容器(如Tomcat 7,Glassfish 3,JBoss AS 6等),那么您将能够使用EL中的参数调用方法。您的具体案例可以按如下方式解决:
${emp.getName('foo')}
如果您尚未使用Servlet 3.0或无法升级到它,那么您需要创建一个custom EL function,其中包含两个参数:Employee
和{{1} }。
name
然后使用如下:
public static String getEmployeeName(Employee employee, String name) {
return employee.getName(name);
}