Grails:更改属性名称"错误"

时间:2016-03-01 07:30:47

标签: validation grails

我有一个看起来像这样的课程

@Validateable
class StudentBean{
   def String name;
   def String age;
   def String address;

   def List<ErrorBean> errors = [];
   static constraints = {
       age nullable : false, validator : { val, obj, errors->
           if(val<10)
               errors.rejectValue("age", "student.age.notQualified.message", [val] as Object[], "Student not qualified."); 
       } 
   }
}

你可以看到我在StudentBean(List)中有一个errors属性。我意识到变量名与存储bean错误的错误有冲突。我所做的是将闭包改为像这样的东西

age nullable : false, validator : { val, obj, errorsValue->
               if(val<10)
                   errorsValue.rejectValue("age", "student.age.notQualified.message", [val] as Object[], "Student not qualified."); 
           } 

但我无法循环使用errorsValue来获取错误。

当我检查哪些错误是文档所说的:

  

域类的errors属性是Spring的一个实例   错误界面。 Errors界面提供了导航方法   验证错误并检索原始值。   https://grails.github.io/grails-doc/latest/guide/validation.html

所以这是域类的属性,可能已声明但隐藏了。 问题是我可以将错误属性名称更改为其他内容吗?

1 个答案:

答案 0 :(得分:1)

您无法更改验证错误属性。

其原因归结为Grails背后的理念。按惯例,所有Grails域类都存在errors。使Grails强大的大部分原因不是配置,而是配置#34;的约定。这确保了Grails项目之间的一致性,并使整个框架更易于学习和使用。