2016-05-10 7 views
0

こんにちは私はgrails 3.1.6でいくつかの問題があります it_ITロケール(私は翻訳が必要です)を使用して、4つの小数点以下の桁の倍数を保存したいと思います。すべてのためのgrails値コンバータ

私はこのする:私はこの数値フォーマット

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

3- とmessages_it.propertiesを構成

static constraints = { 
value   nullable: false, scale: 4 

2-:Iドメインクラスにこの設定を置く 1- Beanに追加したカスタムValueConverterをバインドしようとしましたが、起動時にのみ呼び出されることがわかりました(getTargetTypeメソッド)。

package it.custompackage 

import grails.databinding.converters.ValueConverter 

class DefaultDoubleConverter implements ValueConverter { 

    boolean canConvert(value) { 
    println(">>>>>> canConvert " + value) 
    value instanceof Double 
    } 

    def convert(value) { 
     println(">>>>>> convert " + value) 
     return value 
    } 

    Class<?> getTargetType() { 
    println(">>>>>> getTargetType ") 

    return Double 
    } 
} 

私も、私が間違ってやっている何本

Class<?> getTargetType() { 
    println(">>>>>> getTargetType ") 
    return it.package.MyClass 
    } 

を試してみましたよ?

+0

これはあなたが尋ねた質問には関係しませんが、 'convert'メソッドが' value'を返すことは問題になります。 'convert'メソッドは' value'を 'Double'に変換する必要があります。 –

+0

また、保存と視覚化についての質問もあります。コンバータはそれらのいずれにも直接的な影響を与えません。コンバータはデータバインド時にのみ使用されます。 –

答えて

2

これは最近のバージョンのフレームワークで発生したバグです。 Beanの名前をdefaultGrailsDoubleConverterとすることで回避できます(クラス名は関係ありません)。

関連する問題