gpt4 book ai didi

grails - 使用默认索引方法的Grails连字符URL转换器问题

转载 作者:行者123 更新时间:2023-12-02 14:12:00 26 4
gpt4 key购买 nike

根据Grails documentation,默认的URL映射( Controller Action 和URL之间)使用驼峰式大小写。您可以轻松地将URL映射更改为使用带连字符的URL:

grails.web.url.converter = 'hyphenated'

因此,例如,HelloWorldController.showUsers将映射到:
/hello-world/show-users

在Grails中,您可以有一个默认的 Controller Action ,按照惯例,它是“index”。因此,例如,如果您有一个名为index()的方法,则以下URL将命中该方法:
/hello-world

您可以创建一个链接到该URL的 anchor 标记,如下所示:
<g:link controller="HelloWorld">Go!</g:link>

我注意到一个奇怪的错误,如果我的 Controller 名称前缀只有一个“单词”(例如HelloController),则:
<g:link controller="Hello">Go!</g:link>

...将始终生成指向以下内容的网址:
/hello/index

... 代替:
/hello

我进行了重构,并将其重命名为其他单个单词 Controller ,问题仍然存在。我使用的是Grails 2.2.2,因此我升级到了Grails 2.3.4,感到惊讶的是此错误仍然存​​在。现在,将 Controller 重命名为任何两个单词前缀,例如HomePageController,HelloWorldController,OneTwoController等。

这是我第一次真正使用GSP。难道我做错了什么?

最佳答案

URL是用户体验的一部分,应该整洁,因此index问题确实很烦人。

这很不方便,但是您可以通过映射每个页面并省略操作来消除单个单词 Controller 的URL的index部分。

grails-app / config / UrlMappings.groovy

class UrlMappings {

static mappings = {
"/hello" (controller: "hello")
"/settings" (controller: "settings")
"/dashboard" (controller: "dashboard")
...

关于grails - 使用默认索引方法的Grails连字符URL转换器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com