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

xmjla07d  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(38)

我有一个这样的物体

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... },是可能的吗?

qvtsj1bj

qvtsj1bj1#

如果你的目标至少是一个Servlet 3.0容器,如Tomcat 7+,Glassfish 3+,JBoss AS 6+等,并且web.xml至少符合Servlet 3.0规范,那么EL将允许你调用带参数的方法。然后你的特定情况可以解决如下:

${emp.getName('foo')}

字符串
如果你还没有使用Servlet 3.0或者不能升级到Servlet 3.0,那么你需要创建一个自定义的EL函数,它有两个参数:Employeename

public static String getEmployeeName(Employee employee, String name) {
    return employee.getName(name);
}


你可以使用如下:

${my:getEmployeeName(emp, 'foo')}

相关问题