【发布时间】:2010-09-06 20:53:42
【问题描述】:
将 Grails 应用程序中的默认主页修改为不再是 appName/index.gsp 的配置设置是什么?当然你可以将该页面设置为重定向,但必须有更好的方法。
【问题讨论】:
标签: grails
将 Grails 应用程序中的默认主页修改为不再是 appName/index.gsp 的配置设置是什么?当然你可以将该页面设置为重定向,但必须有更好的方法。
【问题讨论】:
标签: grails
在 UrlMappings.groovy 中添加这个
"/" { 控制器 = "你的控制器" 动作 = “你的动作” }通过这种方式配置 URLMappings,应用的主页将是 yourWebApp/yourController/yourAction。
(从IntelliGrape Blog剪切/粘贴)
【讨论】:
编辑 UrlMappings.groovy
添加例如添加此规则,以使用 HomeController 处理根。
"/"(控制器:'home')
【讨论】:
你可以尝试如下
在配置文件夹内的 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')
}
}
希望这会有所帮助,
鲁贝尔
【讨论】:
通过以下语法使用控制器、视图和动作参数:
class UrlMappings {
static mappings = {
"/" (controller:'dashboard', view: 'index', action: 'index')
"500"(view:'/error')
}
}
【讨论】:
简单整洁
转到文件:grails-app/conf/UrlMappings.groovy。
将行:"/"(view:"/index") 替换为 “/”(控制器:'home',动作:“/index”)。
Home 是你要运行的控制器(就像在 spring security 中你可以使用 'login' ),action 是与你的控制器关联的 grails 视图页面(在 Spring Security '/auth' 中)。
根据您的应用程序需要添加页面重定向。
【讨论】:
所有答案都是正确的! 但是让我们想象一个场景:
我将路径“/”映射到控制器:“Home”和操作:“index”,所以当我访问“/app-name/”时,控制器 Home 会被执行,但如果我输入路径“/app- name/home/index”,它仍然会被执行!所以一个资源有两条路径。在有人找到“home/index”路径之前它会起作用。
另一件事是,如果我有一个没有指定任何动作属性的表单,那么默认情况下它会 POST 到同一个控制器和动作!所以如果表单映射到“/”路径并且没有指定动作属性,那么它将被提交到同一个控制器,但是这次路径将是地址栏中的“home/index”,而不是“/”,因为它被提交给控制器/动作而不是 URI。
要解决这个问题,你必须做的是删除或注释掉这些行。
// "/$controller/$action?/$id?(.$format)?"{
// constraints {
// // apply constraints here
// }
// }
所以现在当您访问“/”时,就可以了。但“家/索引”不会。但是有一个缺陷,现在您必须通过显式写入 URLMapping 文件来手动将所有路径映射到控制器。我想这会有所帮助!
【讨论】:
如果有人正在寻找 gails 3.x 的答案,他们会将 UrlMappings.groovy 移至 grails-app/controllers/appname
正如下面的答案所说,只需编辑以“/”开头的行。
就我而言:
"/"(controller:"dashboard", view:"/index")
【讨论】: