可以在jsp中使用带有参数的$ {object.method}吗?

时间:2012-04-17 14:07:13

标签: java jsp el

我有一个像这样的对象

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... }吗?

1 个答案:

答案 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);
}