Tiles Struts / EL Expressions - PullRequest
       13

Tiles Struts / EL Expressions

1 голос
/ 09 ноября 2011

Я использую Struts 2.2.3 с Tiles 2.1.4. Это работает абсолютно нормально, но сейчас я пытаюсь использовать выражения EL и не могу заставить его работать. В Struts2 я могу использовать <s:property value="${getText('Dashboard.label')}"/>, и он получает сообщение из пакета. Я хотел бы использовать то же самое в определении Tiles. Пока что я добавил context-param в web.xml

<context-param>
  <param-name>org.apache.tiles.evaluator.AttributeEvaluator</param-name>
  <param-value>org.apache.tiles.evaluator.el.ELAttributeEvaluator</param-value>
</context-param>

Теперь я хочу использовать следующее выражение в определении:

<put-attribute name="pane-title"
               expression="${getText('Dashboard.label')}"
               cascade="true"/>

Проблема в том, что когда я делаю это, экран не создается, говоря:

Функция ': getText' не найдена

Так что я полагаю, что что-то упустил, но я не знаю почему. Есть идеи?

1 Ответ

0 голосов
/ 09 ноября 2011

Я не верю, что это сработает;Вы пытаетесь оценить выражение OGNL как обычный старый JSP EL.Я вижу пару возможных решений.

Сначала я бы попробовал самое простое (хотя в долгосрочной перспективе это может не соответствовать вашим потребностям): раскрыть значение в действии с помощью функции getDashboardLabel (иличто угодно), что делает getText вызов.Это должно разрешить простой запрос свойства ${dashboardLabel}.

Это зависит от того, как Tiles разрешает EL, и от того, как текущий запрос разрешает EL: S2 использует тонкую оболочку для представления стека значений в JSP EL.

Если это не работает или не работаетв соответствии с вашими потребностями, я думаю, что следующий подход заключается в том, чтобы посмотреть, сможете ли вы создать оценщик атрибутов Tiles, который обращается к стеку значений и заменяет org.apache.tiles.evaluator.el.ELAttributeEvaluator.Я не уверен, насколько легко / сложно это будет, я должен проверить.Если вы можете получить это для оценки OGNL так же, как это делают существующие теги Struts, это может быть довольно интересно.

О, вы можете просто создать библиотеку функций JSP;Я не совсем уверен, как это будет работать с оценщиком EL, хотя;с JSP это довольно просто.

...