我有一个这样的对象
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. ...传递参数...
,可能吗?
最佳答案
如果您使用符合 Servlet 3.0 规范的 web.xml
以 Servlet 3.0 容器为目标,例如 Tomcat 7、Glassfish 3、JBoss AS 6 等,那么您将能够调用带参数的方法在EL。然后可以按如下方式解决您的特殊情况:
${emp.getName('foo')}
如果您还没有使用 Servlet 3.0 或无法升级到它,那么您需要创建一个 custom EL function它有两个参数:Employee
和 name
。
public static String getEmployeeName(Employee employee, String name) {
return employee.getName(name);
}
然后按如下方式使用:
${my:getEmployeeName(emp, 'foo')}
关于java - 可以在带有参数的jsp中使用${object.method}吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192831/