用于验证的Grails 2.0.4文档向您展示了如何在页面顶部显示错误消息以及如何在字段无效时如何向元素添加css类,但它不会告诉您如何显示错误消息在字段本身旁边,这样的事情:
-----------------------
Name: | | You must enter a name!
-----------------------
Run Code Online (Sandbox Code Playgroud)
如何检索无效字段的特定错误消息,然后将其显示在字段旁边?
我目前正在尝试在grails中为默认约束指定自定义错误消息,但到目前为止我所有回来的都是默认错误消息.
我知道我必须编辑grails-app/i18n/messages.properties文件
如果我更改以下默认错误代码消息,它将正确显示新的错误消息
default.blank.message=Property [{0}] of class [{1}] cannot be blank
Run Code Online (Sandbox Code Playgroud)
但是,这不是我想要做的.我需要更细粒度的错误报告,并且有多个字段可以为空白等.我希望能够做的是,为类中的每个字段显示自定义消息
package com.mycompany.myapp
class Test{
String name
def constraints = {
name(nullable:false, blank:false)
}
}
Run Code Online (Sandbox Code Playgroud)
(以下代码附加到messages.properties的末尾)
test.name.blank=Name cannot be blank
test.name.nullable=Name cannot be nullable
Run Code Online (Sandbox Code Playgroud)
根据grails文档,这应该可以正常工作,无论是否包名 - className.propertyName.blank
grails.org/doc/latest/(约束部分)&(第7.4节 - 验证和国际化)
我已经尝试了所有可以想到的组合,但它总是显示自定义消息
我也尝试过安装grails i18n模板插件
http://www.grails.org/I18n+Templates+Plugin
它会自动为我生成错误代码.我将新的错误代码附加到现有messages.properties文件的末尾,但我仍然收到默认的错误消息.
但是,插件生成的错误代码有所不同.
而不是grails doc - test.name.null = ......中指定的格式,它自动生成test.name.null.error =自定义消息
我还尝试完全删除默认错误消息,但仍然显示它们
如果有人以前遇到过这个问题,我将不胜感激,任何人都可以给予我任何帮助
提前致谢
我有一个带有lastName字段的Person对象.lastName字段不能为空.当用户在lastName字段中提交表单空白值时,用户看到的错误消息是:
Property [lastName] of class [com.example.Person] cannot be blank
Run Code Online (Sandbox Code Playgroud)
此错误消息是蹩脚的.我想将它自定义为更加用户友好的内容,例如"姓氏字段不能为空"
我怎么做?
我想知道如何向 hasErrors 方法添加自定义错误,以便 gsp 发现错误。到目前为止我的代码。
def recoverySetup = new RecoverySetup(params)
def onesolOrgkey = OnesolOrgkeyInfo.get(new OnesolOrgkeyInfo(params));
if(onesolOrgkey != null) {
recoverySetup.setOneSolOrgkey(onesolOrgkey)
} else {
recoverySetup.errors.reject('orgkey', 'You must provide a valid Org Key')
}
recoverySetup.validate()
if(recoverySetup.hasErrors()) {
render view: 'create', model: [recoverySetupInstance: recoverySetup]
return
}
Run Code Online (Sandbox Code Playgroud)