在Struts2 / OGNL中将整个单词大写

时间:2011-06-29 14:18:09

标签: struts2 ognl

我只是看不到它。我想做相同的以下内容:

listValue="%{capitalize(remoteUserName)}"

s:select标记内。

根据struts文档http://struts.apache.org/2.0.11.2/struts2-core/apidocs/com/opensymphony/xwork2/inject/util/Strings.html,存在一个大写函数。我已经尝试了上面的两个和Strings.capitalize来尝试大写remoteUserName。

徘徊在http://incubator.apache.org/ognl/的OGNL文档遗留下来的内容,我认为没有办法立即以这种方式进行资本化。

那么在使用struts 2标签时,大写的语法是什么呢?

修改

我意识到我提出的想法是将这个词的第一个字母大写。真的,我希望单词中的每个字符都大写。

1 个答案:

答案 0 :(得分:5)

以下是使用com.opensymphony.xwork2.inject.util.Strings(已经过测试)的示例

<s:property value="@com.opensymphony.xwork2.inject.util.Strings@capitalize(myString)"/>

这需要启用静态方法调用,只需添加

即可
<struts>
    <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 
</struts>

进入struts.xml

编辑:就像其他人知道的那样(你可能已经这样做了)你可以使用java.lang.String的任何方法,即:myString.toUpperCase()是一个有效的表达式你可以使用正则表达式和java.lang.String方法 replaceFirst replaceAll 以实现所需的结果。

如果com.opensymphony.xwork2.inject.util.Strings capitalize 方法无法满足您的需求,则此问题涵盖了其他可能有用的方法:How to capitalize the first character of each word in a string