grails - 自定义URL上具有URI扩展的内容协商

标签 grails

我将UrlMappings中的某些URL从默认更改为新的。默认返回格式为JSON,并且xxx?format=xml仍可以检索XML响应。但是,URI扩展方法停止了工作(xxx.json或xxx.xml),这是我仍然希望拥有的东西。有什么办法可以将其重新添加到位?

原始文件(可以使用URI扩展名):

"/api/companies"(resources:"company")  {
    "/infos"(resources:"companyInfo")
}

到(URI扩展名不起作用):
"/api/companies"(resources:"company")  {
    "/info"(controller:"companyInfo", action: 'show', method: 'GET')
    "/info"(controller:"companyInfo", action: 'save', method: 'POST')
    "/info"(controller:"companyInfo", action: 'update', method: 'PUT')
    "/info"(controller:"companyInfo", action: 'delete', method: 'DELETE')
}

最佳答案

您需要将格式捕获(使用(.$format)?)添加到URI:

"/api/companies"(resources:"company")  {
    "/info(.$format)?"(controller:"companyInfo", action: 'show', method: 'GET')
    "/info(.$format)?"(controller:"companyInfo", action: 'save', method: 'POST')
    "/info(.$format)?"(controller:"companyInfo", action: 'update', method: 'PUT')
    "/info(.$format)?"(controller:"companyInfo", action: 'delete', method: 'DELETE')
}

关于grails - 自定义URL上具有URI扩展的内容协商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728524/

相关文章:

grails - 为什么 GORM 使用 methodMissing

grails - 在Grails 2.0中g:timeZoneSelect

grails - 由消息队列触发时,Grails服务未保存域对象

grails - 在Grails 3应用程序中使用Spring Webflow

spring - Grails Spring Security Core插件无法正常工作

grails - grails 在哪里存储自生成的 SSL 证书?

tomcat - 登录用户的 session 在 tomcat 上的 grails spring security 中混淆

grails - 默认情况下,标准使用 “inner join”而不是 “left join”方法使我的查询不按我计划的方式工作

mysql - Grails 2.3.0 和 mysql 连接超时

grails - 在 GSP 中使用 JSTL 标签