Grails开发笔记 - 如何改变默认主页

grails为开发者提供了一个controller列表的默认主页,在开发时用起来确实很方便,但总不能把它用到产品环境下吧。可是在grails- app/views下面怎么找不到这个文件,也没有哪个controller和主页相关?实际上这个默认的主页独立放在web-app下,文件名是 index.gsp。把它修改为:

  1. <html> 
  2.     <head> 
  3.         <title>Welcome to Grails</title> 
  4.     <meta name="layout" content="main" /> 
  5.     </head> 
  6.     <body> 
  7.     Hello World! 
  8.     </body> 
  9. </html> 

刷新后主页变成了Hello World!

好了,本文结束,接下来的工作就是你的了。慢着,如果不想重新编写一个主页,而是想把它重定向到一个controller怎么办?

Grails 是建立在Java的基础之上的,在Grails项目中我们可以很方便的使用Java的各种技术,包括JSP。现在把index.gsp重新命名为 index.jsp,内容改为<% response.sendRedirect("yourController/yourAction"); %>,刷新后主页就重定向到了你定义的路径。

事实上GSP是JSP的扩展,这意味着你同样可以在GSP中使用session、 servletContext,、request和response对象。把index.jsp重新改回index.gsp,内容改 为${response.sendRedirect("yourController/yourAction")}同样可以达到重定向效果。

还可以自定义一个Tag来实现重定向:

  1. def redirectPage={attrs-> 
  2.   def url=attrs.get('url'
  3.   response.sendRedirect("${request.contextPath}"+url) 

最后介绍最简单的解决方法:
打开grails-app/conf/UrlMappings.groovy,这是Grails中URL映射的配置文件,相当于Rails中的routes.rb,把它作如下修改即可:

  1. class UrlMappings { 
  2.     static mappings = { 
  3.       "/"(controller:"yourController",action:"yourAction"
  4.       "/$controller/$action?/$id?"
  5.           constraints { 
  6.            // apply constraints here 
  7.           } 
  8.        } 
  9.     } 

Tags: grails

上一篇: Grails开发笔记 - 立即加载和延迟加载
下一篇: Grails开发笔记 - 如何输出SQL Log

相关文章

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论