grails - Grails命令对象可为空的约束

标签 grails grails-validation command-objects

我最近将1.3.6应用程序升级到了Grails2。我的测试用例开始失败

这是场景,我有一个命令对象和一个约束。当请求到达操作时,不带参数name(localhost:8080/app-name/Book/test?i=0)
我收到验证错误。 Grails博士说,“命令对象”字段默认情况下可以为空。从这次测试看来,事实并非如此。我的问题是如何使所有命令对象的全局值都可为空?下面的代码

class BookController {

    def test = {TestCommand cmd ->
        cmd.validate()
        if (cmd.hasErrors()) {
            println "has Errors"
            render 'Error'
        } else {
            println "Success"
            render 'Hello World'
        }
    }
}

命令对象是:
class TestCommand {
       int i;
       String name

       static constraints = {
         name(password: true)
       }
} 

最佳答案

原来是Grails的错误。 Grails 2.0更改了有关命令对象的默认可为空值的行为。这是JIRA

关于grails - Grails命令对象可为空的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733066/

相关文章:

Grails - 如何清除命令对象中以前的验证错误?

grails 2.1.1 自定义验证器的命令对象服务注入(inject)

grails - 将更新的Grails 2.4.4更新到2.5.6时遇到的问题

grails - 搭建第一个 Grails 应用程序时出现 NullPointer 异常

Grails:如何使用命令对象验证由项目列表组成的 POST 正文?

Grails 错误代码

用于日期验证的Grails最小约束

sql - 使用 SQL EXCEPT 和 count(*) 时出现 QuerySyntaxException

Grails 重定向中断参数类型

grails - 无法在没有索引的情况下将列表绑定(bind)到命令对象