Grails格式执行
我遇到了一个问题,在查询字符串上使用Grails格式执行,grails,Grails,我遇到了一个问题,在查询字符串上使用format=json参数向grails1.3.7发送帖子 基于GrailswithFormatdocumentation-,此参数应导致withFormat闭包在内部执行json闭包 i、 e: 在本例中,控制器方法服务于多种内容类型。有一些逻辑应该只对表单运行,因此添加了withFormat闭包,如下所示: withFormat { form { // form specific logic } } 注意,没有json块,
format=json
参数向grails1.3.7发送帖子
基于GrailswithFormat
documentation-,此参数应导致withFormat
闭包在内部执行json
闭包
i、 e:
在本例中,控制器方法服务于多种内容类型。有一些逻辑应该只对表单运行,因此添加了withFormat
闭包,如下所示:
withFormat {
form {
// form specific logic
}
}
注意,没有json
块,因为如果这是一个json请求,则没有相应的逻辑可执行。问题是,表单块甚至在我们对查询字符串发送format=json
的请求上执行
为什么会发生这种情况?显然,如果您没有在withFormat中指定匹配的闭包,Grails仍然会运行一个闭包。Grails文档确实注意到,如果请求格式为“all”,它将在withFormat块中执行第一个闭包。我假设如果您的请求格式与withFormat块中的一个闭包不匹配,Grails默认运行第一个闭包 为了解决这个问题,我们在withFormat中放置了一个空的json闭包,Grails从那时起按照预期处理了所有事情
withFormat {
json {
// do nothing
}
form {
// form specific logic
}
}
显然,如果您没有在withFormat中指定匹配的闭包,Grails仍然会运行一个闭包。Grails文档确实注意到,如果请求格式为“all”,它将在withFormat块中执行第一个闭包。我假设如果您的请求格式与withFormat块中的一个闭包不匹配,Grails默认运行第一个闭包 为了解决这个问题,我们在withFormat中放置了一个空的json闭包,Grails从那时起按照预期处理了所有事情
withFormat {
json {
// do nothing
}
form {
// form specific logic
}
}