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 を使用できます。