Grails URL映射不存在的资源

时间:2014-11-10 22:48:00

标签: grails model-view-controller gsp url-mapping

我有一个fizzbuzz.gsp,我有FizzBuzzControllerindex()方法来呈现此GSP:

class FizzBuzzController {
    def index() {
        render(view: "fizzbuzz", model: getModel())
    }

    def getModel() { ... }
}

通常,要获取与fiizbuzz.gsp文件相关联的HTML,我会拨打http://myapp.example.com/fizzbuzz

我有一个独特的情况,我现在需要我的Grails应用程序来处理像http://myapp.example/fizzbuzz.html这样的HTML文件网址请求。

Grails是否提供了将http://myapp.example/fizzbuzz.html的传入请求映射到http://myapp.example.com/fizzbuzz的方法?这样,客户端可以请求HTML文件,但仍然可以从服务器端回送正确的GSP / HTML文件。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以做到这一点是不同的方式。如果您使用的是Grails 2.3或更高版本,则可以使用redirect中的UrlMapping.groovy作为:

"/fizzbuzz.html"(redirect: "/fizzBuzz")

指示&#34; 如果您在网址中看到fizzbuzz.html,则重定向到index控制器的<{1}}操作&#34;

或者您也可以明确地将其用作

fizzBuzz

或者您可以将映射复制为

//index is the default action therefore specifying action in the map is optional
"/fizzbuzz.html"(redirect: [ controller: "fizzBuzz", action: ''index' ]) 

在任何一种情况下,它都会调用action方法而不是查找任何静态资源。