4

我只是看不到它。我想做相当于以下的事情:

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 标签时大写的语法是什么?

编辑:

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

4

1 回答 1

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方法replaceFirstreplaceAll来实现所需的结果。

If com.opensymphony.xwork2.inject.util.Strings capitalize method does not meet your needs this question covers other methods which might be useful: How to capitalize the first character of each word in a string

于 2011-06-29T18:24:04.173 回答