Номер формата в теге Struts 2 <s: property/">

Я хотел бы отформатировать номер, отображаемый тегом <s:property value="summary.total"/> в Struts 2. Значение double. Как я могу это сделать? Должен ли я использовать OGNL?

Или, может быть, я должен использовать тэг <s:text/> и определить свой формат в файле resuource?

Ответы

Ответ 1

Вам нужно использовать <s:text/> с <s:param/>.

Файл свойства:

summary.cost= € {0,number,##0.00}

JSP:

<s:text name="summary.cost"> 
    <s:param name="value" value="summary.total"/> 
</s:text>

Этот ответ объясняет, как использовать # и 0 в маске формата.

Ответ 2

Чем быстрее

<s:property value="getText('{0,number,#,##0.00}',{summary.total})"/>

Лаки!!

Ответ 3

Это быстрее:

<s:property value="getText('struts.money.format', {summary.cost})" />

И в вашем файле свойств это:

struts.money.format= {0,number,\u00A4##0.00}

Надеемся на эту помощь

Ответ 4

У меня была эта проблема для форматирования числа таким образом 1.234,56

поэтому я предпочитаю теги тегов struts и тега fmt (fmt, потому что s: число не существует)

поэтому я использовал следующий синтаксис:

 <s:label label="mylabel">
    <s:param name="value">
        <s:text  name="">
    <fmt:formatNumber  maxFractionDigits="2" pattern="#.###"  >1234.56</fmt:formatNumber>
        </s:text>   
    </s:param>      
 </s:label>

и он работает

Ответ 5

Если ваше свойство не является числом в вашем действии, getText не будет работать над ним. Шаблон принимает только числа. В этом случае вы можете пойти с fmt, как указано @sarie

<fmt:formatNumber groupingUsed="true" type="currency" value="${amount}" />