我得到了 4567.00、8976.00 等金额的值。现在,在 displaytag 中显示这个值时,我想将其打印为 4567.00 美元,而不仅仅是 4567.00。我怎样才能做到这一点?如果我只想使用显示标签。我可以使用 core:out 标签来实现同样的目标。
$<core:out value="${variableInMyList}" />
找到答案 [我是怎么做到的]
创建一个新类:
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
}
}
现在在显示标签中
<displaytag:column title="Amount" property="amount" decorator="com.rj.blah.utils.decorator.NumberFormatDecorator" format="$ {0,number,0,000.00}"/>
注意:我们可以在 displaytag:column 的 format 属性中使用 MessageFormat