如何更改Grails应用程序中的默认主页?

时间:2008-08-26 12:10:01

标签: grails

将Grails应用程序中的默认主页修改为不再是appName / index.gsp的配置设置是什么?当然,您可以将该页面设置为重定向,但必须有更好的方法。

7 个答案:

答案 0 :(得分:56)

在UrlMappings.groovy中添加此内容

 "/" {
    controller = "yourController"
    action = "yourAction"
 }

通过这种方式配置URLMappings,应用程序的主页将是yourWebApp / yourController / yourAction。

(从IntelliGrape Blog剪切/粘贴)

答案 1 :(得分:11)

修改UrlMappings.groovy

添加例如添加此规则,以使用HomeController处理root。

“/”(控制器: '家')

答案 2 :(得分:11)

您可以尝试如下
在配置文件夹中的UrlMappings.groovy类中:

class UrlMappings {

    static mappings = {

        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }

        //"/"(view:"/index")
        "/" ( controller:'Item', action:'index' ) // Here i have changed the desired   action to show the desired page while running the application
        "500"(view:'/error')
    }
}

希望这会有所帮助,
鲁贝尔

答案 3 :(得分:3)

通过以下语法使用controller,view和action参数:

class UrlMappings {
   static mappings = {
       "/" (controller:'dashboard', view: 'index', action: 'index')
       "500"(view:'/error')
   }
}

答案 4 :(得分:2)

简单而整洁

  1. 转到文件:grails-app / conf / UrlMappings.groovy。

  2. 将行替换为:“/”(view:“/ index”) “/”(控制器:'主页',操作:“/索引”)。

  3. Home是你的控制器运行(就像在spring security中你可以使用'login')和action是与你的控制器相关的grails视图页面(在Spring Security'/ auth'中)。

    根据您的应用需求添加页面重定向。

答案 5 :(得分:0)

所有答案都是正确的! 但让我们想象一个场景:

我用控制器映射路径“/”:“Home”和action:“index”,所以当我访问“/ app-name /”时,控制器Home会被执行,但如果我键入路径“/ app-名称/主页/索引“,它仍将被执行!所以一个资源有2条路径。它会工作,直到有人找到“家/索引”路径。

另一件事是如果我有一个没有指定任何动作属性的表单,所以默认情况下它将POST到同一个控制器和动作!所以如果表单映射到“/”路径并且没有指定action属性,那么它将被提交给同一个控制器,但这次路径将是你的地址栏中的“home / index”,而不是“/”,因为它被提交给控制器/动作而不是URI。

要解决此问题,您需要删除或注释掉这些行。

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

所以现在当你访问“/”时,会起作用。但“家/索引”不会。但是有一个缺陷,现在你必须通过显式写入URLMapping文件手动将所有路径映射到控制器。我想这会有所帮助!

答案 6 :(得分:0)

如果有人在寻找盖尔3.x的答案,他们会将UrlMappings.groovy移至grails-app / controllers / appname

如以下答案所述,只需将其以“ /”开头即可。

就我而言:

"/"(controller:"dashboard", view:"/index")