我收到此警告:
Warning |The [addPeople] action accepts a parameter of type [org.codehaus.groovy.grails.web.json.JSONObject] which has not been marked with @Validateable. Data binding will still be applied to this command object but the instance will not be validateable.
def addPeople(JSONObject jsonsito) {
如果我将JSONObject更改为def,则警告消失。我确定引用是JSONObject。我这样做是为了避免将来出现PermGem错误。
任何人都可以解释如何用@Validateable标记此OBJ?
提前致谢。
最佳答案
你不能JSONObject
类不是代码的一部分,因此您不必使其成为@Validateable
。
当 Controller Action 在编译时接受参数时,Grails会为您生成一堆代码。总而言之,生成的代码执行以下操作:
@Validateable
,则调用.validate()
步骤4是有条件的,只有在对象是
@Validateable
时才会发生。在您的情况下则不会,这很好。警告只是让您知道。附带说明一下,如果参数类型是域类
String
,8个基本类型之一或8个类型包装器之一,则上述过程是不同的。我上面描述的是系统对所有其他类型的行为。