使用JSP bean访问器发送参数

时间:2010-09-15 22:15:10

标签: java jsp jstl el

我有一个叫做EmployeeRoster的bean:

public class EmployeeRoster {
  protected List<Employee> janitors;
  protected List<Employee> teachers;
}

在JSP中,我想按类型访问不同的Employees列表。我知道我可以做类似的事情:

${employeeRoster.getJanitors}

但是,我有许多不同类型的员工,而不是在EmployeeRoster中为每种类型创建一个访问者,我希望能够做到这样的事情:

${employeeRoster.get(EmployeeType.JANITOR)}  // obviously, not valid

这在JSP中可行吗?我可以将参数应用于bean访问器调用吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Map<String, List<Employee>>属性。 E.g。

public class EmployeeRoster {
    private Map<String, List<Employee>> types = new HashMap<String, List<Employee>>();

    public EmployeeRoster() {
        // Fill the map here?
    }

    // Add/generate getter.
}

然后,您可以按如下方式访问地图值:

${employeeRoster.types.janitor}

基本上与employeeRoster.getTypes().get("janitor")相同。您还可以使用括号表示法使用动态密钥:

${employeeRoster.types[type]}

基本上employeeRoster.getTypes().get(type)

另见: