struts 2文本标签用动态表达,怎么样?

时间:2010-01-05 22:03:49

标签: struts2

我需要动态地从动作提供密钥到文本标签

<s:text name="<%=talkToUsInfo.messageKey%>" />  

但是text标签上的name属性被声明为false(不确定为什么?)

如何在不更改jar文件中的tld的情况下获得此类工作?

3 个答案:

答案 0 :(得分:6)

看看OGNL

可能看起来像这样

<s:text name="%{talkToUsInfo.messageKey}" />

答案 1 :(得分:3)

Struts documentation说:

相反,您应该使用在Action扩展XWork的ActionSupport时继承的getText()方法:

<s:textfield name="lastName" label="getText('person.lastName')" />

所以我使用了例如。

<s:property value="getText('status' + #someObject.currentStatus)" />

而不是“s:text”,它起作用了。

答案 2 :(得分:1)

我更喜欢使用OGNLs: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')" />