首页 文章

视图中的grails number(double)格式

提问于
浏览
1

我是Grails(2.2.0)的新手,并试图弄清楚如何在视图中格式化双值 . 我有很多它们,因此如果可能的话,我会更喜欢其中一个配置文件中的一些代码 .

视图中的所有值都使用g格式化:field ... type =“number”...

在resources.groovy,我有这个

beans = {
localeResolver(SessionLocaleResolver) {
defaultLocale= Locale.ENGLISH
Locale.setDefault (Locale.ENGLISH)
}
}

在我使用的messages.properties中

default.number.format=#'###'###.#

我不需要i18n . 我删除了那里的所有其他文件 .

此问题仅在视图中 . 所有数据都保持正确 .

这里有一些我想要的视图示例:

输入10输出10

输入0输出0

输入0.775输出0.775

输入0.7输出0.7

输入1234567.12345输出1'234'567.12345

最后一个例子不是ENGLISH的标准格式 . 而不是一千个分离器,我想'

我想如果我用的话

default.number.format=#'###'###.#

我不需要用g:formatNumber格式化每个值 .

我感谢任何帮助 . 提前致谢!

Edit

这是我的问题:

为什么default.number.format =#'###'### . ##在messages.properties中不起作用?

例如,我在我看来有这个:

<g:field name="mydouble" size="8" maxlength="20" type="number" value="${fieldValue(bean: myInstance, field: 'mydouble')}"/>

如何在此字段上使用g:formatNumber标记 . 我已阅读Grails文档,但显然我在理解它时遇到了问题 .

我写道,我是初学者,因此我可能会遗漏那些了解Grails非常明显的人 .

3 回答

  • 0

    在GSP中渲染数字时尝试使用 fieldValue .

    <g:field value="${fieldValue(bean: personInstance, field: 'minPrice')}" />
    

    不确定是否存在不使用默认值的问题,因为您遗漏了问题中的一些细节 . 所以在这里黑暗中拍摄 .

  • 1

    我不确定我是否理解这个问题,但请看看这是否适合你:

    <g:field value="${g.formatNumber(number: fieldValue(bean: personInstance, field: 'minPrice'), format: g.message(code: 'default.number.format'))}" />
    
  • 0

    那么,您需要使用 ' 作为小数分隔符吗?试试这种格式化方法:

    class NumberUtilities {
        static String format(double d) {
            def format = new DecimalFormat()
            def symbols = format.decimalFormatSymbols
            symbols.groupingSeparator = '\''
            format.decimalFormatSymbols = symbols
            return format.format(d)
        }
    }
    

    然后在您的视图中写入 ${NumberUtilities.format(1234567.12345)} .

    这只是一个想法,根据您需要的其他格式规则,为方法添加更多格式 .

相关问题