如何使用JSTL或JSP 2.0 EL访问具有参数的 setter/getter ?
我想访问这样的内容:
public FieldInfo getFieldInfo(String fieldName) {
....
}
我可以使用mapped properties在Struts中访问它,但是不知道在JSTL或JSP 2.0中是否可以实现。
我尝试了所有内容,但无法正常工作。
最佳答案
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]}