我想实现一个自定义验证器类。互联网上有一些教程,例如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
^
如何注册我的自定义验证器类?
答案 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