gpt4 book ai didi

grails - Grails withFormat执行

转载 作者:行者123 更新时间:2023-12-02 14:59:05 24 4
gpt4 key购买 nike

我有一个问题,我使用查询字符串上的format=json参数将POST发送到 Grails 1.3.7

根据Grails withFormat文档-http://grails.org/doc/1.3.7/ref/Controllers/withFormat.html,此参数应使withFormat闭包在其中执行json闭包。

即:

withFormat {
json {
// this logic should be executed if the query string has format=json
}
}

在这种情况下, Controller 方法提供了多种内容类型。有一些逻辑仅应针对表单运行,因此添加了 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
}
}

关于grails - Grails withFormat执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com