Reputation: 93
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.
Upvotes: 9
Views: 11975
Reputation: 1109132
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]}
Upvotes: 23