grails 2+ url映射特定规则

时间:2014-01-09 09:34:05

标签: grails grails-2.0 url-mapping

修改

我忘记了一个“/”所以它实际上正在工作。我不删除此帖子,因为它可能对其他人有用

我已经阅读了很多关于grails urlMapping的答案,但没有找到符合我需要的答案。

假设我有两个域:Project Contributor

class Project{
   String name;
   String urlName; //is the name converted to url
   static belongsTo = [contributor: Contributor]
}

//a contributor has many Projects, then in the `Project` 
//table I have `contributor_id`
class Contributor{
    String userName;
    static hasMany = [projets: Project]
}

我的网址看起来像这样:

www.mysite.com/frank/frank-s-nice-project/comments
www.mysite.com/bill/bill-s-great-project/comments
www.mysite.com/lucie/lucie-s-awesome-project/comments

对应于:www.mysite.com/ 用户名/ urlName /评论

username来自贡献者域。 urlName来自项目

当网址匹配urlMappgings.groovy时,如何设置controller/action始终重定向到同一"/$username/$urlName/comments"

我试过这样但没有成功。

static mappings = {
    "/$username/$urlName/comments"(controller: 'comment', action: 'index)
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

static mappings = {
    "/comments/$username/$urlName"(controller: 'comment', action: 'index)
}

如果您将注释替换为第一个值并发表注释然后解析用户名/网址会发生什么?

我可以通过初始映射看到的问题是用户名会与项目的实际实际操作冲突

答案 1 :(得分:0)

我回答我的问题,将其作为已接受的答案,

这实际上有效

static mappings = {
    "/$username/$urlName/comments"(controller: 'comment', action: 'index)
}