我想通过访问 Struts 2 值堆栈中的属性来使
titleKey
属性参数化。所以,我想做这样的事情:
<display:table name="myListOfObjects" id="myId" requestURI="/myAction.action" pagesize="10">
<display:column property="myProperty" titleKey="my.internationalyzed.i18n.key.myProperty.<s:property value='anotherObject.aProperty'/>" />
...
如您所见,我想在我的操作中访问公开对象的属性
<s:property value='anotherObject.aProperty'/>
并将值放入
titleKey
元素中。
如果我这样做,结果是一个表列,其标题为未解析的
my.internationalyzed.i18n.key.myProperty
字符串。换句话说,<s:property>
标签不会在 <display:column>
元素内部进行解释。
但是如果我把
<s:property value='anotherObject.aProperty'/>
在
<display:table>
元素之外,它会被正确解析,并且结果值会显示在页面上,因此属性会被正确公开和赋值。
您知道如何从
<display:column>
元素内部访问操作中公开的属性吗?
您可以在非struts标签内使用JSP EL表达式,因此在查看请求范围时表达式将要求请求公开值堆栈。例如
<display:column property="myProperty" titleKey="my.internationalyzed.i18n.key.myProperty.${anotherObject.aProperty}" />