如何在h:outputText中转换字符串?这是h:outputText的代码:

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

我试过用这个
<s:convertStringUtils format="capitalize" trim="true"/>

但这给了我错误:
“未为名称定义任何标签:convertStringUtils”

最佳答案

有几种方法。

  • 使用CSS的text-transform: capitalize属性。

    <h:outputText value="#{bean.text}" styleClass="capitalized" />
    



    .capitalized {
        text-transform: capitalize;
    }
    
  • 创建一个自定义 Converter

    <h:outputText value="#{bean.text}" converter="capitalizeConverter" />
    


    @Override
    public String getAsString(FacesContext context, UIComponent component, Object modelValue) {
        if (modelValue == null || ((String) modelValue).isEmpty()) {
            return null;
        }
    
        String string = (String) modelValue;
        return new StringBuilder()
            .append(Character.toTitleCase(string.charAt(0)))
            .append(string.substring(1))
            .toString();
    }
    
  • 使用OmniFaces' of:capitalize() function

    <html ... xmlns:of="http://omnifaces.org/ui">
    ...
    <h:outputText value="#{of:capitalize(bean.text)}" />
    

  • 您尝试的<s:convertStringUtils>并非来自Seam。它来自MyFaces Sandbox。

    10-04 11:09