根据Grails documentation,默认的URL映射(在控制器操作和URL之间)使用驼峰大小写。您可以轻松更改URL映射以使用带连字符的URL:
grails.web.url.converter = 'hyphenated'
例如,HelloWorldController.showUsers将映射到:
/hello-world/show-users
在Grails中,您可以使用默认的控制器操作,按照惯例,它是“索引”。因此,例如,如果您有一个名为index()的方法,则以下URL将触及该方法:
/hello-world
您可以创建一个链接到该URL的锚标记,如下所示:
<g:link controller="HelloWorld">Go!</g:link>
我注意到一个奇怪的错误,如果我的控制器名称前缀只有一个“单词”,如HelloController,那么:
<g:link controller="Hello">Go!</g:link>
...将始终生成指向以下内容的网址:
/hello/index
...而不是:
/hello
我重构并将其重命名为其他单字控制器并且问题仍然存在。我使用的是Grails 2.2.2,所以我升级到Grails 2.3.4并且很惊讶这个bug仍然存在。将控制器重命名为任何两个单词前缀,如HomePageController,HelloWorldController,OneTwoController等,现在是一种解决方法。
这是我第一次真正使用GSP。我做错了吗?
答案 0 :(得分:0)
网址是用户体验的一部分,应该是干净的,因此index
问题真的很烦人。
这很不方便,但您可以通过映射每个页面并省略操作来消除单个字控制器的URL的index
部分。
<强>的grails-app /配置/ UrlMappings.groovy 强>
class UrlMappings {
static mappings = {
"/hello" (controller: "hello")
"/settings" (controller: "settings")
"/dashboard" (controller: "dashboard")
...