Struts 2 Динамическое сообщение с OGNL

В проекте Struts 2 рассмотрите ниже ключевые ресурсы сообщения:

export.filename.accountsummary=customer ${export}

Акция имеет export поданный с сеттером и геттером. Если вы позвоните getText("export.filename.accountsummary") распорки будут автоматически вызывать getExport() и заполните его правильным значением. (Я думаю, что распорки используют OGNL, также ищите сообщения ресурсов, которые одобрены ${}) Это правильно?!

Я пытаюсь использовать customer ${#sessionScope.CurrentUser.userName} Ожидается, что распорки используют это выражение OGNL, но это не сработало.

2 ответа

Решение

Выглядит как переменная sessionScope недоступно в контексте (если вы не указали это вручную). Не путайте это с переменной области сеанса JSP (синтаксис аналогичен тому, который используется в JSP для EL, но Struts2 там не использует механизм JSP EL), все в выражении OGNL оценивается по контексту OGNL. Ты можешь использовать ${} синтаксис в сообщениях, Struts анализирует его значение для выражения OGNL, и этот синтаксис определяет область выражения, которая оценивается после удаления ${},

Я обнаружил, что в стеке vale уже есть сессия с #session так

${#session.['CurrentUser'].farsiFirstName}
${#session.CurrentUser.farsiFirstName}

работает отлично.

Другие вопросы по тегам