如何在Grails 3

时间:2016-12-06 20:47:05

标签: validation grails grails3

我想实现一个自定义验证器类。互联网上有一些教程,例如http://blog.swwomm.com/2011/02/custom-grails-constraints.html在这些教程中描述了您必须在Config.groovy中注册验证器类

问题是Config.groovy被Grails 3中的application.groovy取代了。我的application.groovy看起来像这样:

import at.byte_code.businessSuite.core.NamespaceValidatorConstraint
import grails.validation.ConstrainedProperty

ConstrainedProperty.removeConstraint(ConstrainedProperty.VALIDATOR_CONSTRAINT)
ConstrainedProperty.registerNewConstraint(ConstrainedProperty.VALIDATOR_CONSTRAINT, NamespaceValidatorConstraint.class)

但是当我尝试运行应用程序时,我收到以下错误:

| Error Error occurred running Grails CLI: startup failed:
script1481056327870569414787.groovy: 1: unable to resolve class at.byte_code.businessSuite.core.NamespaceValidatorConstraint
 @ line 1, column 1.
   import at.byte_code.businessSuite.core.NamespaceValidatorConstraint
   ^

script1481056327870569414787.groovy: 2: unable to resolve class grails.validation.ConstrainedProperty
 @ line 2, column 1.
   import grails.validation.ConstrainedProperty
   ^

如何注册我的自定义验证器类?

2 个答案:

答案 0 :(得分:1)

这是因为在Grails 3中禁止在application.groovy中导入第三方类。要使用第三方类,请创建runtime.groovy文件。

答案 1 :(得分:0)

一个解决方案(可能还有其他解决方案)是将此代码添加到Application类本身:

import urllib2

test_url = "http://www.test.com"

try:
    urllib2.urlopen(test_url)
except:
    pass