我需要动态地从动作提供密钥到文本标签
<s:text name="<%=talkToUsInfo.messageKey%>" />
但是text标签上的name属性被声明为false(不确定为什么?)
如何在不更改jar文件中的tld的情况下获得此类工作?
答案 0 :(得分:6)
看看OGNL
可能看起来像这样
<s:text name="%{talkToUsInfo.messageKey}" />
答案 1 :(得分:3)
相反,您应该使用在Action扩展XWork的ActionSupport时继承的getText()方法:
<s:textfield name="lastName" label="getText('person.lastName')" />
所以我使用了例如。
<s:property value="getText('status' + #someObject.currentStatus)" />
而不是“s:text”,它起作用了。
答案 2 :(得分:1)
我更喜欢使用OGNL
和s:text
,而不是手动调用getText
。
您通常在为其添加动态部分时定义固定前缀,因此可以使用以下某些内容:
<s:text name="%{'student.types.'+currencyType}" />
我在getText
中使用s:property
的唯一时间是这样的(如果您想使用if/else
,则需要一些s:text
):
<s:property value="shouldCancelIt.equals(\"0\") ?
getText('label.yes'):getText('label.no')" />