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

标签 jsf jsp-tags el

我想使用 EL 在 jsp 中调用一个传递给它的参数的 bean 函数。 问题是它不允许这样的事情: “${teacherBean.certificationFor(${particularField})

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

所以基本上我想做类似的事情: ${teacherBean.certificationFor(${particularField}) 但我不能那样做。 我可以用任何其他方式做到这一点吗?

我是 EL 的新手。 :) 感谢您的帮助。

最佳答案

你到底想在哪里做这件事,为了什么?只是为了获得展示值(value)?至少,在 Java EE 6 之前的标准 EL 中,您不能像那样传递方法参数。在 JBoss-EL或在 Java EE 6 EL你可以做到。语法将是:

${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)

关于jsf - 如何访问 EL 变量并将其作为参数传递给 EL 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961232/

相关文章:

jsf - 通过注释声明组件处理程序

java - 在 JSF 2.0 中使用@ViewScoped?

java - displaytag 外部分页/排序并获取真实行号

java - 运行 JSP 的侵入性最小的方式

javascript - 你可以使用<c :otherwise> with <c:if> or only with <c:when>?

jsp - 在 JSP : "The function contains must be used with a prefix when a default namespace is not specified" 中使用 EL 时出错

html - p :layoutUnit ignore the margin-top

eclipse - Eclipse自动完成素数标签

Spring MVC 模型不显示字符串

java - 可以在带有参数的jsp中使用${object.method}吗?