36

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

4

7 回答 7

60

在 UrlMappings.groovy 中添加这个

"/" {
    控制器 = "你的控制器"
    行动 = “你的行动”
 }

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

(从IntelliGrape 博客剪切/粘贴)

于 2008-09-15T12:24:42.127 回答
12

You may try as follows
in the UrlMappings.groovy class which is inside the configuration folder:

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')
    }
}

hope this helps,
Rubel

于 2013-06-27T05:32:41.830 回答
12

编辑 UrlMappings.groovy

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

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

于 2008-09-15T09:57:39.330 回答
4

通过以下语法使用控制器、视图和操作参数:

class UrlMappings {
   static mappings = {
       "/" (controller:'dashboard', view: 'index', action: 'index')
       "500"(view:'/error')
   }
}
于 2015-03-10T23:20:40.777 回答
2

简单整洁

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

  2. 将行:“/”(view:“/index”)替换为“/”(controller:'home',action:“/index”)。

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

根据您的应用程序需要添加页面重定向。

于 2011-12-20T19:33:12.493 回答
0

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

我将路径“/”映射到控制器:“Home”和操作:“index”,所以当我访问“/app-name/”时,控制器 Home 会被执行,但是如果我输入路径“/app-name/home” /index”,它仍然会被执行!所以一个资源有两条路径。它会一直工作,直到有人找到“home/index”路径。

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

要解决这个问题,您必须做的是删除或注释掉这些行。

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

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

于 2014-10-24T00:24:00.500 回答
0

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

正如下面的答案所说,只需编辑以“/”开头的行。

在我的情况下:

"/"(controller:"dashboard", view:"/index")
于 2019-05-03T13:38:19.713 回答