1

我有一个丰富的:数据表来显示数据库上的记录,其中有一些列。这是一个例子:

<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

String 值没有 defaultConverters。

您可以在这里做的最简单的事情是编写一个替代的 getMyValue() 方法。

<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 回答