使用命令对象时,例如:
class UserCommand {
String name
static constraints = {
name blank: false, unique: true, minSize: 3
}
}
您可以使用它们来验证对象而不使它们持久化。就我而言,我将验证持久类用户。
在控制器中:
def save(UserCommand cmd) {
if(!cmd.validate()) {
render view: "create", model: [user: cmd]
return
}
def user = new User()
user.name = cmd.name
user.save()
redirect uri: '/'
}
在messages.properties中:
user.username.minSize.error=Please enter at least three characters.
userCommand.username.minSize.error=Please enter at least three characters.
使用自定义验证消息时,您必须为每个错误编写两次消息代码。一个用于 User 类,另一个用于 UserCommand 类。
有没有办法让每个错误只有一个消息代码?