JSTL или JSP 2.0 EL для получения с аргументом - PullRequest
8 голосов
/ 25 апреля 2011

Как я могу получить доступ к получателю с параметром, используя JSTL или JSP 2.0 EL?

Я хочу получить что-то вроде этого:

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

Я мог бы получить доступ к этому в Struts, используя сопоставленные свойства , но не знаю, возможно ли это в JSTL или JSP 2.0.

Я попробовал все, но не работает.

1 Ответ

22 голосов
/ 25 апреля 2011

Передача аргументов метода в EL возможна только по спецификации EL, поддерживаемой в EL 2.2. 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]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...