Grails GSP, вкладка fieldValue, форматирование - PullRequest
0 голосов
/ 22 июня 2010

Как тег Grails fieldValue выполняет свое форматирование?

У меня есть класс домена с атрибутом Double.

class Thing {
    Double numericValue
}

В GSP fieldValueиспользуется (как создано grails generate-all) для рендеринга:

${fieldValue(bean:thing, field:"numericValue")}

К сожалению, цифры после 3 десятичных разрядов не отображаются (т. е. 0.123456 отображается как 0.123).Как мне управлять форматированием fieldValue?

Обратите внимание, что я мог бы просто использовать ${thing.numericValue} (который не форматирует) или <g:formatNumber>, но я бы лучше использовал тег fieldValue и указалформатирование.Я просто не знаю, где указать форматирование fieldValue.

Ответы [ 2 ]

2 голосов
/ 22 июня 2010

Используйте <g:formatNumber number="${thing.numericValue}" format="\\$###,##0.00" /> вместо этого или используйте ${g.formatNumber(number:thing.numericValue, format:'\\$###,##0.00'}

Надеюсь, это поможет.

0 голосов
/ 18 декабря 2015

Альтернативой ответам выше является использование файлов i8n. Эта опция полезна, поскольку ее можно изменить на «Все» и в зависимости от локали

если вы перейдете в файл messages.properties, вы можете добавить следующее

default.number.format = ###,##0.00

Это изменит формат по умолчанию для всех чисел.

Если вы планируете использовать тег g: formatNumber, я бы предложил использовать его как

 <g:formatNumber number="${myNumber}" formatName="myCustom.number.format" />

и добавление записи кода в файлы messages.properties как:

myCustom.number.format = ###,##0.00

выполнив это, вам нужно будет использовать код только там, где вам нужен подобный числовой формат, и, при необходимости, вносить изменения в одном месте.

Было бы в ваших интересах прочитать эту статью из документации Граилса.


OFFTOPIC: В качестве дополнительного примечания вы также можете изменить формат даты по умолчанию в файле messages.properties следующим образом

default.date.format=dd 'de' MMMM 'de' yyyy 
...