JSTL 或 JSP 2.0 EL 用于带参数的 getter

发布于 2024-11-03 12:44:59 字数 329 浏览 0 评论 0原文

如何使用 JSTL 或 JSP 2.0 EL 访问具有参数的 getter?

我想访问这样的东西:

public FieldInfo getFieldInfo(String fieldName) {
 ....
}

我可以通过使用 mapped 在 Struts 中访问它属性,但不知道在 JSTL 或 JSP 2.0 中是否可行。

我尝试了一切,但不起作用。

How can I access a getter that has a parameter using JSTL or JSP 2.0 EL?

I want to access something like this:

public FieldInfo getFieldInfo(String fieldName) {
 ....
}

I could access this in Struts by using mapped properties but don't know if it is possible in JSTL or JSP 2.0.

I tried everything but is not working.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

通知家属抬走 2024-11-10 12:45:02

在 EL 中传递方法参数仅受 EL 2.2 中的 EL 规范支持。默认情况下,EL 2.2 在 Servlet 3.0 / JSP 2.2 容器中提供。因此,如果您使用 Servlet 3.0 容器(Tomcat 7、Glassfish 3、JBoss 6 等)并且您的 web.xml 声明符合 Servlet 3.0 规范,那么您应该能够通过以下方式访问它:既然

${bean.getFieldInfo('fieldName')}

您明确提到了 JSP 2.0,它是旧的 Servlet 2.4 规范的一部分,我认为没有升级的空间。您最好的选择是将方法替换为,

public Map<String, FieldInfo> getFieldInfo() {
    // ...
}

以便您可以按如下方式访问它

${bean.fieldInfo.fieldName}

${bean.fieldInfo['fieldName']}

${bean.fieldInfo[otherBean.fieldName]}

Passing method arguments in EL is only by EL spec supported in EL 2.2. EL 2.2 is by default shipped in Servlet 3.0 / JSP 2.2 containers. So if you're using a Servlet 3.0 container (Tomcat 7, Glassfish 3, JBoss 6, etc) and your web.xml is declared conform Servlet 3.0 spec, then you should be able to access it as follows

${bean.getFieldInfo('fieldName')}

Since you explicitly mentioned JSP 2.0, which is part of the old Servlet 2.4 spec, I assume that there's no room for upgrading. Your best bet is to replace the method by

public Map<String, FieldInfo> getFieldInfo() {
    // ...
}

so that you can access it as follows

${bean.fieldInfo.fieldName}

or

${bean.fieldInfo['fieldName']}

or

${bean.fieldInfo[otherBean.fieldName]}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文