如何在Grails UrlMappings中设置默认网址?

时间:2014-07-04 14:28:45

标签: java spring-mvc grails groovy grails-2.0

我想包含Grails的默认网址映射。这是,如果请求的url在url映射中没有规则,则应该重定向到home / index。

我的网址映射目前是:

class UrlMappings {

    static mappings = {
       "/$controller/$action?/$id?(.$format)?" { 
           constraints { 
           // apply constraints here
           } 
        }

       "/"(controller:"home", action:"index")

       "/admin"(controller:"login",action:"authadmin")
       "/robots.txt"(controller:"home",action:"robots")
       "/sitemap.xml"(controller:"home",action:"sitemap")

       "404"(controller:"home",action:"notfound")
       "500"(view:'/error')

       "/**"(controller:"home", action:"index")    
    }
}

我使用以/ **开头的最后一条规则来映射url映射中没有特定规则的所有传入请求。问题是,当我将以下内容放入我的GSP文件

<g:link controller="home" action="index"><div class="MainLogo"></div></g:link>

然后网址看起来像这样:

http://www.example.com/**

有没有办法纠正这个?如何为定义了url映射中的规则的URL创建默认映射?

1 个答案:

答案 0 :(得分:3)

我不能说我真的建议这种方法,因为真的最好为不存在的页面发回404,但无论如何我认为最好的方法是双卡通道。参见:

http://grails.org/doc/latest/guide/theWebLayer.html#mappingWildcards

例如:

   "/$path**"(controller:"home", action:"index")