Валюта тега формата DisplayTag - PullRequest
0 голосов
/ 04 августа 2011

Я использую теги displaytag 1.2 и fmt:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

Я пытаюсь использовать атрибут формата displaytags для форматирования числа в валюте.Однако похоже, что displaytag отображает формат валюты, отличный от формата fmt-number.Это вызывает несоответствия на моей странице и требует устранения.Ex.Displaytag форматирует местную валюту так: NOK 1 500,00 Ex.FMT форматирует местную валюту так: kr 1 500,00

Версия FMT верна, поэтому я хотел бы использовать тот же формат в displaytag.Как я могу заставить displaytag правильно форматировать?

Желательно без декораторов.

Это мои текущие фрагменты jsp-кода:

<fmt:formatNumber type="currency"><s:property value="reportFooter.pris" /></fmt:formatNumber>
<display:column property="pris" sortable="true" titleKey="report.header.price" format="kr {0,number,currency}"/>

1 Ответ

1 голос
/ 04 августа 2011

Это дешевый тест:

int i = 1000;
MessageFormat mf = new MessageFormat("{0,number,currency}", new Locale("no", "NO"));
System.out.println(mf.format(new Object[] {new Integer(i)}));

Распечатывает kr 1 000,00

int i = 1000;
MessageFormat mf = new MessageFormat("{0,number,currency}", new Locale("en", "NO"));
System.out.println(mf.format(new Object[] {new Integer(i)}));

Распечатывает NOK1,000.00

Ваша проблема в том, что вы неправильно настроили LocaleResolver displaytag. Он имеет норвежский язык, но с английским языком.

Код Displaytag в порядке, он делает то же самое, что и я в моем тестовом коде:

<a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#50" rel="nofollow">50</a>  <b>public</b> MessageFormatColumnDecorator(<a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java#String" rel="nofollow" title="java.lang.String">String</a> pattern, <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Locale.java#Locale" rel="nofollow" title="java.util.Locale">Locale</a> locale)<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#51" rel="nofollow">51</a>  {<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#52" rel="nofollow">52</a>      <b>this</b>.format = <b>new</b> <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/text/MessageFormat.java#MessageFormat" rel="nofollow" title="java.text.MessageFormat">MessageFormat</a>(pattern, locale);<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#53" rel="nofollow">53</a>  }<br/><br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#58" rel="nofollow">58</a>  <b>public</b> <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Object.java#Object" rel="nofollow" title="java.lang.Object">Object</a> decorate(<a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Object.java#Object" rel="nofollow" title="java.lang.Object">Object</a> columnValue, PageContext pageContext, <a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/properties/MediaTypeEnum.java#MediaTypeEnum" rel="nofollow" title="org.displaytag.properties.MediaTypeEnum">MediaTypeEnum</a> media)<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#59" rel="nofollow">59</a>  {<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#60" rel="nofollow">60</a>      <b>try</b><br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#61" rel="nofollow">61</a>      {<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#62" rel="nofollow">62</a>          <b>return</b> <b>this</b>.format.<a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/text/Format.java#Format.format%28java.lang.Object%29" rel="nofollow" title="java.text.Format.format(java.lang.Object) : String">format</a>(<b>new</b> <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Object.java#Object" rel="nofollow" title="java.lang.Object">Object</a>[]{columnValue});<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#63" rel="nofollow">63</a>      }<br/><a href="http://grepcode.com/file/repo1.maven.org/maven2/displaytag/displaytag/1.2/org/displaytag/decorator/MessageFormatColumnDecorator.java#64" rel="nofollow">64</a>      <b>catch</b> (<a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/IllegalArgumentException.java#IllegalArgumentException" rel="nofollow" title="java.lang.IllegalArgumentException">IllegalArgumentException</a> e)<br/>
...