我有一个fizzbuzz.gsp
,并且我有一个FizzBuzzController
和index()
方法来呈现此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文件URL的请求。Grails是否提供任何方式将
http://myapp.example/fizzbuzz.html
的传入请求映射到http://myapp.example.com/fizzbuzz
?这样,客户端可以请求HTML文件,但是仍然可以从服务器端返回正确的GSP / HTML文件。有任何想法吗? 最佳答案
您可以通过不同的方式来做到这一点。如果您使用的是Grails 2.3或更高版本,则可以将redirect
中的UrlMapping.groovy
用作:
"/fizzbuzz.html"(redirect: "/fizzBuzz")
指示“如果您在url中看到fizzbuzz.html,则重定向到
index
Controller 的fizzBuzz
操作”或者您也可以将其显式用作
//index is the default action therefore specifying action in the map is optional
"/fizzbuzz.html"(redirect: [ controller: "fizzBuzz", action: ''index' ])
或者您可以将映射复制为
"/fizzbuzz.html"(controller: "fizzBuzz")
无论哪种情况,它都将调用action方法而不是寻找任何静态资源。