1

DB上のレコードを表示するrich:datatableがあり、そこにいくつかの列があります。次に例を示します。

<rich:dataTable id="myTable" var="myItem" value="#{myList}">
    <rich:column width="25%">
         <h:outputText value="#{myItem.myValue}" />
    </rich:column>
...

表は、正常なレコードを示しています。h:outputText値を別の値として表示したい(つまり、変換する)。たとえば、文字列を逆にしたり、その結果を「検索して置換」したりします。numberConvertors、dateConvertorsがありますが、文字列が見つかりませんでした。クライアント側のソリューション(javascript、jqueryなど)も妥当である可能性があります。助言がありますか?

4

2 に答える 2

0

文字列値のdefaultConvertersはありません。

ここでできる最も簡単なことは、代替のgetMyValue()-methodeを作成することです。

<h:outputText value="#{myItem.myModifiedValue}" />

そしてあなたの豆の中で

public String getMyModifiedValue() { 
   return doSomethingwith( this.myValue );
}
于 2012-11-09T09:42:18.067 に答える
0

numberConvertors、dateConvertorsがありますが、文字列が見つかりませんでした

自分で作成するだけです。

@FacesConverter("myStringConverter")
public class MyStringConverter implements Converter {

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        // Write code here which converts the model value before displaying.
    }

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        // Write code here which converts the submitted value before updating model.
        // Note that this method isn't ever used in output text.
    }

}

次のように使用します。

<h:outputText value="#{myItem.myValue}" converter="myStringConverter" />
于 2012-11-09T10:56:31.417 に答える