10

h:outputText で文字列を変換するにはどうすればよいですか? h:outputText のコードは次のとおりです。

<h:outputText value="#{item.label} : " />

これを使ってみたのですが、

<s:convertStringUtils format="capitalize" trim="true"/>

しかし、それは私にエラーを与えます:「名前のタグが定義されていません:convertStringUtils」

4

4 に答える 4

1

以下は、JSF 1.2 および Seam 2.x で動作します。Seam がなくても動作する可能性がありますが、Seam が Java EE 5 で EL を拡張する方法を正確に思い出すことはできません。

<h:outputText value="#{item.label.toUpperCase()} : " />

<!-- If your string could be null -->
<h:outputText value="#{(item.label != null ? item.label.toUpperCase() : '')} : " />
于 2012-12-10T01:31:47.663 に答える
0

@BalusC が使用できると言ったようにtext-transform: capitalize;。ただし、文の各単語の最初の文字は大文字に変換されます。要件がそれである場合、それが最良の答えです。理由は、
1.簡単だからです
2. text-transform: capitalize;すべての主要なブラウザーでサポートされているからです。

ただし、文の最初の文字だけを大文字にしたい場合は、次のようにすることができます。

public String getLabel() {
  if(label != null && !label.isEmpty()) {
    return Character.toUpperCase(label.charAt(0)) + label.substring(1);
  }
  return label;
}

JBoss Seamには<s:convertStringUtils>タグがないと思います。そのようなタグはApache MyFacesで利用できると思います。それについてはあまり知りません。

于 2012-11-17T04:17:32.627 に答える
0

データ Bean に getter メソッドを作成する

public String getCapitalizeName(){
  return StringUtils.capitalize(getName());
}

そしてxhtmlで

<houtputText value="#{yourDataBean.capitalizeName}"/>
于 2012-11-17T01:50:13.170 に答える