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}
работает отлично.