Struts 2 条带 OGNL 的动态消息

Struts 2 Dynamic message with OGNL

在 Struts 2 项目中,考虑消息资源中的以下键:

export.filename.accountsummary=customer ${export}

此操作已 export 提交 setter 和 getter。 如果你调用 getText("export.filename.accountsummary") struts 将自动调用 getExport() 并用正确的值填充它。 (我认为 struts 也使用 OGNL 查找与 ${} 认可的资源消息)这是正确的吗?!

我尝试使用 customer ${#sessionScope.CurrentUser.userName} 预期 struts 使用此 OGNL 表达式,但它没有用。

变量 sessionScope 似乎在上下文中不可用(如果您没有手动输入)。不要将它与 JSP 会话范围变量搞混(语法类似于 JSP 中用于 EL 的语法,但 Struts2 不使用 JSP EL 引擎), OGNL 表达式中的所有内容都根据 OGNL 上下文进行评估。可以在messages中使用${}语法,Struts解析其OGNL表达式的值,该语法定义表达式的作用域,去掉${}后求值。

我发现 vale 堆栈中已经有了 #session 的会话,所以

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

工作正常。