我有一个像这样的对象
public class Employee {
public String getName() {
return "tommaso";
}
public String getName(String name) {
return "tommaso "+name;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的动作中(我使用Struts),我设置了一个对象Employee的参数.
request.setAttribute("emp",employeeInstance);
Run Code Online (Sandbox Code Playgroud)
之后在jsp中我编写了这段代码
${emp.name}
Run Code Online (Sandbox Code Playgroud)
而输出是
tommaso
如果我想使用第二种方法public String getName(String name) { ... },使用相同的正式文本${emp. ...something passing a parameter... },是否可能?
如果您使用web.xml符合Servlet 3.0规范的Tomcat 7,Glassfish 3,JBoss AS 6等Servlet 3.0容器,那么您将能够在EL中调用带参数的方法.您的具体案例可以解决如下:
${emp.getName('foo')}
Run Code Online (Sandbox Code Playgroud)
如果您尚未使用Servlet 3.0或无法升级到它,那么您需要创建一个自定义EL函数,该函数有两个参数:the Employee和name.
public static String getEmployeeName(Employee employee, String name) {
return employee.getName(name);
}
Run Code Online (Sandbox Code Playgroud)
然后你使用如下:
${my:getEmployeeName(emp, 'foo')}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4758 次 |
| 最近记录: |