java - 使用 JSP bean 访问器发送参数

标签 java jsp jstl el

我有一个名为 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/

相关文章:

java - 如何使用 JUnit 测试类的验证注释?

java - 将链接值作为 href 标记中的变量传递

javascript - 杰伊: form with jsp and angular

java - 高效的 JSP/Tomcat 持久存储?

java - 我可以在带有 JSP 2.1 的 c :forEach tag using JSF 1. 2 上的统一 EL 表达式中使用哈希表吗?

jsp - 如何附加 c :forEach tag to Struts HTML tag attributes? 的循环索引

java - Tomcat的字符编码问题

java - deployJava.js 将 <embed> 元素添加到头部区域

java - Android 版

java - 使用java分割巨大的文本文件来读取它们