代码之家  ›  专栏  ›  技术社区  ›  Surya

Struts 2文本标记与动态表达式,如何?

  •  6
  • Surya  · 技术社区  · 16 年前

    我需要动态地将密钥从操作提供给文本标记

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

    但文本标记上的name属性声明为false(不知道为什么?)

    在不更改JAR文件中的TLD的情况下,我如何才能得到这样的工作?

    3 回复  |  直到 10 年前
        1
  •  3
  •   Afshin Moazami Darxis    11 年前

    Struts documentation 说:

    相反,当操作扩展XWork的actionsupport时,应该使用继承的getText()方法:

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

    所以我用了

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

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

        2
  •  6
  •   tevch    16 年前

    看看Ognl

    看起来像这样

    <s:text name="%{talkToUsInfo.messageKey}" />
    
        3
  •  1
  •   Alireza Fattahi    10 年前

    我更喜欢使用 OGNL s:text 不要打电话给 getText 手动。 通常在向其添加动态部分的同时定义一个固定前缀,因此可以使用类似这样的内容:

    <s:text name="%{'student.types.'+currencyType}" />
    

    我唯一使用的时间 获得文本 s:property 是这样的(需要一些 if/else 如果你想用 S:文本 ):

    <s:property value="shouldCancelIt.equals(\"0\") ? 
                               getText('label.yes'):getText('label.no')" />