我有一个叫做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访问器调用吗?
答案 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)
。