вторник, 24 ноября 2009 г.

Struts 2 tags

Из-за одной мелкой, примитивной задачи, чуть не пришлось добавлять очередную либу - JSTL. Задача заключалась в сохранении средствами тагов некоторой переменной, имеющей захардкоданое значение константы, в контекст страницы для последующего использования.
Попытка использовать struts 2 вариант

<s:set var="my_var" value="my_value"/>

ни к чему не приводила. Стратс искал объект с именем my_value.
Уже после того как добавил либу JSTL, обнаружил-таки правильный способ сделать это стратсовыми тагами. Делается с использованием OGNL escape sequence (%{expression}):

<s:set name="my_var" value="%{'my_value'}" />

В дальнейшем для получения значения переменной следует использовать опять OGNL escape sequence:

<s:property value="%{#attr.my_var}"/>

#attr - означает искать по всем скопам начиная со страницы, далее реквеста, далее сессии и наконец аппликейшна.
Для того, чтобы использовать значение переменной в выражении, например, для булевого условия, пишем:

<s:if test="%{#attr.my_var != 'my_value'}">
something strange!
</s:if>



Комментариев нет:

Отправить комментарий