Я получаю значение суммы, например 4567,00, 8976,00 и т. Д. Теперь, отображая это значение в displaytag, я хотел бы напечатать его как 4567,00 $ вместо 4567,00. Как я могу это сделать?
При условии, что я просто хочу использовать тег отображения. Я могу получить то же самое, используя core: out tag.
$<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}"/>
Примечание: мы можем использовать MessageFormat в атрибуте формата displaytag: column