如何访问 EL 变量并将其作为参数传递给 EL 中的函数?

2024-03-12

我想调用 bean 上的函数,并使用 ALL 在 jsp 中传递给它的参数。 问题是它不允许这样的事情: ”${teacherBean.certificationFor(${particularField})"

问题是我想迭代一个数组并为作为参数传递的数组中的所有值调用函数 CertificationFor 。 我通过以下方式获取数组中的值:

所以基本上我想做一些类似的事情: ${teacherBean.certification For(${特定字段}) 但我不能那样做。 我可以用其他方式做到这一点吗?

我是 EL 的新手。 :) 任何帮助表示赞赏。


您究竟想在哪里这样做以及为了什么?只是为了获取显示值?至少,在 Java EE 6 之前的标准 EL 中,您不能像这样传递方法参数。在JBoss-EL http://docs.jboss.org/seam/latest-2/reference/en-US/html/elenhancements.html or in Java EE 6 EL http://java.sun.com/javaee/6/docs/tutorial/doc/gjddd.html你可以做到的。那么语法就是:

${teacherBean.certificationFor(particularField)}

请注意,您不能嵌套 EL 表达式,EL 表达式本身已经是一个完整的表达式。

然而,在标准 EL 实现中,您可以访问Map使用大括号符号按键值。因此,如果您有一个Map<String, String> certifications其中按键对应particularField以及相关值的值:

private Map<String, String> certifications = new HashMap<String, String>();

public Map<String, String> getCertificationFor() {
    return this.certifications;
}

那么你可以使用以下符号:

${teacherBean.certificationFor[particularField]}

这在幕后解决了

teacherBean.getCertificationFor().get(particularField)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何访问 EL 变量并将其作为参数传递给 EL 中的函数? 的相关文章