Groovy Grails 教程 國際化多語言配置方法教程【Grails中文教程】
阿新 • • 發佈:2018-12-22
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 |
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 結果如下圖: