Grails 不使用';不存在
我有一个Grails 不使用';不存在,grails,model-view-controller,gsp,url-mapping,Grails,Model View Controller,Gsp,Url Mapping,我有一个fizzbuzz.gsp,我有一个FizzBuzzController,它带有一个index()方法来呈现这个gsp: class FizzBuzzController { def index() { render(view: "fizzbuzz", model: getModel()) } def getModel() { ... } } 通常,要获取与fiizbuzz.gsp文件关联的HTML,我会调用http://myapp.exampl
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应用程序为HTML文件URL请求提供服务,比如http://myapp.example/fizzbuzz.html
Grails是否提供了映射
http://myapp.example/fizzbuzz.html
至http://myapp.example.com/fizzbuzz
?这样,客户端可以请求一个HTML文件,但仍然可以从服务器端返回正确的GSP/HTML文件。有什么想法吗?你可以用不同的方法来做。如果您使用的是Grails2.3或更高版本,则可以在UrlMapping.groovy
中使用redirect
,如下所示:
"/fizzbuzz.html"(redirect: "/fizzBuzz")
指示“如果在url中看到fizzbuzz.html,则重定向到fizzbuzz
控制器的index
操作”
或者您也可以将其显式用作
//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方法,而不是查找任何静态资源