Je reçois la valeur du montant comme 4567.00, 8976.00 etc. Maintenant tout en distribuant cette valeur dans le displaytag je voudrais l'imprimer en tant que $ 4567.00 au lieu de juste 4567.00. Comment puis je faire ça? Pourvu que je veux juste utiliser l'étiquette d'affichage. Je peux réaliser la même chose en utilisant le core: out tag.comment mettre en forme la devise dans displaytag
$<core:out value="${variableInMyList}" />
Réponse trouvée [Comment je l'ai fait]
Créer une nouvelle classe:
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
}
}
maintenant dans la balise d'affichage
<displaytag:column title="Amount" property="amount" decorator="com.rj.blah.utils.decorator.NumberFormatDecorator" format="$ {0,number,0,000.00}"/>
Note: nous pouvons utiliser l'attribut MessageFormat au format de displaytag: colonne
** $ ** comme je l'ai dit Ce n'est pas ce que je veux faire. Mais merci pour le concept de décorateur –