struts2: избегая жесткого кода в тегах Struts, JSP - PullRequest
0 голосов
/ 25 ноября 2011

При использовании struts2 я могу получить доступ к своим атрибутам сеанса внутри тегов struts2, используя выражение OGNL, например:

#session['object_key']

Проблема в том, что я использую это выражение на разных страницах, каждый раз жестко кодируя эту строку 'object_key'. Можно ли каким-либо образом использовать именованную константу любого типа, чтобы можно было легко изменить ключ, используемый для хранения моего объекта в карте сеанса?

1 Ответ

3 голосов
/ 25 ноября 2011

Конечно, используйте статическую константу; Есть несколько вариантов, как это сделать.

По умолчанию, доступ с использованием полного имени:

<s:property value="#session[@app.Constants@OBJECT_KEY]" />

Подробнее см. Доступ к статическим свойствам на странице Основы OGNL .

Еще одна хитрость заключается в том, чтобы установить перехватчик, который помещает класс констант в стек значений с использованием «выглядящих» констант. Вы можете сделать то же самое в действии, например, можно использовать базовый класс действий.

Тогда все, что нужно в JSP, это:

${session[OBJECT_KEY]}
...