1. 程式人生 > >Groovy Grails 教程 國際化多語言配置方法教程【Grails中文教程】

Groovy Grails 教程 國際化多語言配置方法教程【Grails中文教程】


Groovy Grails 教程 國際化多語言配置方法教程【Grails中文教程】

【原文連結:http://www.jsjtt.com/bianchengyuyan/groovy/2013-11-19/22.html

grails框架國際化配置很簡單,在建立工程專案時所有的properties檔案已經自動生成

國際化配置檔案在grails-app/i18n目錄下的message.properties檔案中,
 預設訊息提示型別都是通用的,我們可以定製自己為每個欄位設定自定義的錯誤訊息
 錯誤訊息定義規範,
 完整的包名+類名+特點的訊息驗證(注意大小寫)
 如中文配置檔案messages_zh_CN.properties寫法:

org.test.User.userName.blank=使用者名稱不能為空
org.test.User.password.blank=密碼不能為空
org.test.User.sex.nullable=請選擇性別
org.test.User.sex.not.inList=請選擇性別
org.test.User.age.min.notmet=年齡不能小於10歲,範圍在10-100之間

下面列出說有可用的驗證錯誤資訊:

約束 包名+類名+欄位
blank, packageName.ClassName.propertyName.blank
nullable packageName.ClassName.propertyName.nullable
creditCard packageName.ClassName.propertyName.creditCard.invalid
display N/A
email packageName.ClassName.propertyName.email.invalid
password packageName.ClassName.propertyName.password.invalid
inList packageName.ClassName.propertyName.not.inList
matches packageName.ClassName.propertyName.matches.invalid
min, packageName.ClassName.propertyName.min.notmet
max packageName.ClassName.propertyName.max.exceeded
minSize, packageName.ClassName.propertyName.minSize.notmet
maxSize packageName.ClassName.propertyName.maxSize.exceeded
size packageName.ClassName.propertyName.size.toosmall 
packageName.ClassName.propertyName.size.toobig
notEqual packageName.ClassName.propertyName.notEqual
range packageName.ClassName.propertyName.range.toosmall
packageName.ClassName.propertyName.range.toobig
scale N/A
unique packageName.ClassName.propertyName.unique
url packageName.ClassName.propertyName.url.invalid
validator packageName.ClassName.propertyName.validator.invalid

grails的驗證錯誤訊息定義規則

完整例項:

建立User實體類

package org.test
 
class User {
     
    String userName
    String password
    int age
    String sex
    Date birthday
    Date dateCreated
    Date lastUpdated5
     
    static constraints = {
        //排序
        //新增校驗
        userName(blank:false,maxSize:50)
        password(blank:false,password:true)
        birthday()
        sex(inList:["F","M"])
        age(min:10,max:100)
    }
     
    def beforeInsert = {
        password = password.encodeAsSHA1()
    }
}

建立UserController控制類

package org.test
 
class UserController {
    def scaffold = true //屬性提供了增刪改查CRUD全部功能
     
    def index() { }
}


在grails-app/i18n/messages_zh_CN.properties檔案末尾中新增如下:

org.test.User.userName.blank=使用者名稱不能為空
org.test.User.password.blank=密碼不能為空
org.test.User.sex.nullable=請選擇性別
org.test.User.sex.not.inList=請選擇性別
org.test.User.age.min.notmet=年齡不能小於10歲,範圍在10-100之間

執行專案 grails run-app

訪問URL:http://localhost:8080/userDemo/user/create 結果如下圖: