grails - Grails 3网址映射

标签 grails grails3 grails3.2.0

如何映射具有两个ID的网址:

/ orders / $ id1 / orderlines / $ id2

id2是可选的

/ orders / $ id1 / orderlines GET->订单ID1的所有订单行
/ orders / $ id1 / orderlines / $ id2 GET->在订单ID1中显示订单行ID2

这些方法将映射到OrderLineController

使用Spring MVC @RequestMapping和@PathVariable非常容易。

Grails 3不允许@RequestMapping(有一些技巧可以使它工作-但我不想走那条路线-不必要地复杂)。

感谢帮助。我做了很多谷歌搜索。

最佳答案

您可以使用UrlMappings:

UrlMappings.groovy

 class UrlMappings {
        static mappings = {
            "/orders/$id1/orderlines"(controller: 'orderLine', action: 'someAction1')
            "/orders/$id1/orderlines/$id2"(controller: 'orderLine', action: 'someAction2')
        }
    }

OrderLineController.groovy
def someAction1(Long id1){
  //...
}
def someAction2(Long id1, Long id2){
  //...
}

关于grails - Grails 3网址映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41993566/

相关文章:

grails - 外部Tomcat 7/8上的Grails 3中的 Assets 管道不包括CSS或JS

grails - 单个Quartz作业中有多个触发器/Cron表达式

grails - 如何在Grails 3中阅读TIBCO消息

grails - 在Gson中渲染少量模型

spring - 我可以通过 grails 的 spring 安全凭证来使用react吗?

grails - 如何在不显示参数的情况下获取更干净的网址?

grails - 使用 grails 动态查找器时出现 org.springframework.dao.InvalidDataAccessApiUsageException

grails - 无法配置 Grails 3 多个数据源

grails - 无法在 Grails 3 中填充 java.util.getTimeZone 以进行 Taglib 中的 spock 测试