2014-02-17 37 views
9

從Grails的2.2.3更新後的Grails 2.3.5(常規2.0.8-> 2.1.9),我發現奇怪的行爲 Domain對象:Domain對象串場自動修邊

class Element { 
    String name 
    String title 
    static constraints = { 
    title nullable: true 
    } 
} 

在創建過程中的字符串現場修剪自動和空字符串由空

def e = new Element(name:'', title:' sgg gg ') 
assert e.name==null 
assert e.title=='sgg gg' 

代替我不能在Grails的&常規的更新日誌找到這個超級功能。我如何禁用它?

回答

13

來自:http://grails.1312388.n4.nabble.com/Grails-2-3-Data-Binding-String-Trimming-And-Null-Conversions-td4645255.html

Grails中2.3的默認行爲是數據綁定過程中修剪字符串。除此之外,另一種默認行爲是在數據綁定期間將空字符串(字符串中沒有任何內容,甚至空格)轉換爲null。這兩件事情按順序發生,所以如果你綁定一個沒有任何內容但空格的String,默認行爲是綁定null,因爲String將被修剪,然後因爲它是空的,它將被轉換爲null。這是一個合理的默認值。有單獨的配置屬性用於禁用這些行爲。

// grails-app/conf/Config.groovy 
    grails.databinding.convertEmptyStringsToNull=false 
    grails.databinding.trimStrings=false 

我相信這是提到here in the documentation