【问题标题】:grails 2.1.1 command object service injection for custom validatorgrails 2.1.1 自定义验证器的命令对象服务注入
【发布时间】:2012-11-05 21:05:09
【问题描述】:

Grails 2.1.1

我似乎无法让命令对象注入服务,以便我可以使用自定义验证器。我尝试了几件事,包括 Grails command object data binding 和 自定义验证器上的 2.1.1 文档建议什么,我就是想不通这个..

相关代码:

class RegistrationCommand {

    String username

    def registrationService
    static constraints = {

        username validator: { val, obj ->
            obj.registrationService.isUsernameUnique(val) }
    }
}

class RegistrationService {

    def isUsernameUnique(username){
        def user = new User(username:username)
        user.validate()
        if(user.errors.hasFieldErrors("username")){
            return false
        }else{
            return true
        }
    }

【问题讨论】:

  • 您是否收到错误消息?如果有,是什么?
  • 一个几乎相同的案例在 2.1.1 下对我来说很好用。在我的例子中,包括 obj 第二个参数并使用它是关键,但你已经有了。
  • 是的,我有 @grails.validation.Validateable.. 我得到的错误是 NullPointerException (Cannot invoke method isUsernameUnique() on null object)。

标签: grails customvalidator command-objects


【解决方案1】:

已解决。问题是由插件引起的。 我正在使用一个插件进行客户端 jquery 验证(jquery-validation-ui-1.4.2)。插件控制器创建的命令对象没有被注入服务。该问题已报告https://github.com/limcheekin/jquery-validation-ui/issues/17。该修复确实有效,但尚未推送到上游。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-06
    • 2017-07-27
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多