我有一个名为 EmployeeRoster 的 bean:
public class EmployeeRoster {
protected List<Employee> janitors;
protected List<Employee> teachers;
}
在 JSP 中,我想按类型访问不同的员工列表。我知道我可以做这样的事情:
${employeeRoster.getJanitors}
但是,我有许多不同类型的员工,我希望能够执行以下操作,而不是在 EmployeeRoster 中为每种类型创建访问器:
${employeeRoster.get(EmployeeType.JANITOR)} // obviously, not valid
这在 JSP 中可能吗?我可以将参数应用于 Bean 访问器调用吗?
最佳答案
您可以使用Map<String, List<Employee>>
属性(property)。例如
public class EmployeeRoster {
private Map<String, List<Employee>> types = new HashMap<String, List<Employee>>();
public EmployeeRoster() {
// Fill the map here?
}
// Add/generate getter.
}
然后您可以按如下方式访问 map 值:
${employeeRoster.types.janitor}
基本上与 employeeRoster.getTypes().get("janitor")
相同。您还可以使用大括号表示法来使用动态键:
${employeeRoster.types[type]}
这基本上是employeeRoster.getTypes().get(type)
.
另请参阅:
关于java - 使用 JSP bean 访问器发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722264/