如何在displaytag中格式化货币

Rak*_*yal 2 java displaytag number-formatting

我得到的金额像4567.00,8976.00等.现在,虽然在displaytag中显示这个值我想打印为$ 4567.00而不是4567.00.我怎样才能做到这一点?只要我想使用显示标签.我可以使用core:out标签来实现相同的功能.

$<core:out value="${variableInMyList}" />
Run Code Online (Sandbox Code Playgroud)

找到答案[我是怎么做到的]

创建一个新类:

public class NumberFormatDecorator implements DisplaytagColumnDecorator{
    Logger logger = MyLogger.getInstance ( );

    public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) throws DecoratorException {        
        try
        {
            Object colVal = columnValue;
            if ( columnValue != null ){
                colVal = Double.parseDouble( (String)columnValue );
            }
            return colVal;
        }catch ( Exception nfe ){}
        logger.error( "Unable to convert to Numeric Format");
        return columnValue; // even if there is some exception return the original value
    }
}
Run Code Online (Sandbox Code Playgroud)

现在在显示标签

<displaytag:column title="Amount" property="amount" decorator="com.rj.blah.utils.decorator.NumberFormatDecorator" format="$ {0,number,0,000.00}"/>
Run Code Online (Sandbox Code Playgroud)

注意:我们可以使用displaytag:column的formatFormat格式属性

小智 8

你班上需要什么?您可以按如下方式编写它:

<displaytag:column property="amount" format="$ {0,number,0,000.00}"/>
Run Code Online (Sandbox Code Playgroud)