将Grails应用程序中的默认主页修改为不再是appName / index.gsp的配置设置是什么?当然,您可以将该页面设置为重定向,但必须有更好的方法。
答案 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)
简单而整洁
转到文件:grails-app / conf / UrlMappings.groovy。
将行替换为:“/”(view:“/ index”) “/”(控制器:'主页',操作:“/索引”)。
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")