问题标签 [urlmappings.groovy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1738 浏览

grails - 如何在 UrlMappings.groovy 中转义 Url 模式中的 # 符号?

为了在项目中维护当前的一组 Url,我必须能够在 Url 中使用#(井号)。出于某种原因,井号在 UrlMappings.groovy 的这个项目中似乎无法正常工作。

在UrlMappings.groovy中放置 # 符号时是否必须使用特殊的转义序列

我是否错过了为什么一个人根本不能使用英镑符号的一些原因?

在以下 URL 映射示例中,浏览器转到正确的页面,但 pageName 变量为空:

0 投票
1 回答
1912 浏览

grails - 如何检测 URL 映射中的片段标识符?

Grails项目中,我试图根据 Url 中是否存在Fragment Identifier来映射Url。片段标识符很重要,因为 Flash 库SWFAddress使用它们与网页中的 Flash 应用程序进行通信。

我只需要确定请求 url 中是否存在片段。

我应该研究HttpServletRequest来做到这一点吗?

Grails 中根据片段标识符是否存在于 URL 中路由 URL 的最佳方法是什么?

[我在 Grails 论坛上问过同样的问题。]

0 投票
2 回答
2062 浏览

grails - Grails 捕获所有带有异常的 url 映射

我正在尝试创建一个模拟休息服务。这基本上有两个组成部分。我需要一个带有动作和视图的控制器,它允许我创建 ResourceMappings,在其中创建 uri 和我将传回的模拟响应之间的映射。第二个组件是所有其他 url 的包罗万象的 Grails url 映射,因此当他们点击此应用程序的 uri 时,它们将被发送到我的 catch all 控制器,该控制器将返回他们之前创建的映射响应。

例如......我去网址http://someserver.com:1234/restMapping/list。此 url 是 catch all 规则的例外。它把我带到了一些允许我创建休息 uri 映射的视图。在这里,我创建映射 /mockservice/test 并给它响应“这是一个测试”,内容类型为 text/plain。现在,如果我访问 url http://someserver.com:1234/mockservice/test我应该抓住所有发送给我的控制器,该控制器返回一个内容类型为 text/plain 的页面和响应“这是一个测试”。

我尝试了以下方法,但似乎不起作用。有没有人有任何想法?

需要注意的一件有趣的事情是,当我摆脱 ** 并添加大量额外变量时,例如 $s1?/$s2?/$s3? 等等然后它似乎确实有效。问题是我不知道我试图映射的 uri 有多长,所以我宁愿使用 ** 来捕获我所拥有的少数异常中的所有异常。

0 投票
2 回答
184 浏览

grails - 为开发人员访问保存脚手架的最佳方法是什么?

我正在 Grails 2.0.RC1 中开发一个项目,我希望能够将我的域对象的脚手架控制器和视图保存为“低级”,开发人员只能访问仍在修补的东西,而能够开发视图和控制器的生产版本(名称相似,尤其是控制器)。我想按原样保留它们,以便在对域层进行更新时重新生成它们,因此仅移动它们很可能不起作用。

我希望有一种方法可以做一些 UrlMapping 魔术,让我对“/mgr/book”的请求转到脚手架的 Book 控制器,但“/book”会转到我的生产控制器。我在文档中找不到有关如何为特定控制器组进行映射的任何内容(没有按名称指定每个控制器而不是 $controller 表示法)。

我的另一个想法是将我的领域层变成一个插件,然后创建一个单独的项目,该项目仅用于脚手架视图。这在投入生产之前会更容易删除,但似乎也需要更多工作,并且会引发在同一个盒子上同时运行两个 grails 应用程序的问题。

0 投票
2 回答
1249 浏览

grails - Grails URL 映射导致 GSP 错误

我有一个网站,其 URL 类似于:

我有这样的 URL 映射

我能够正确到达控制器。

但在普惠制方面

注意我是如何丢失 mysite 和控制器之间的前缀的。

0 投票
2 回答
592 浏览

forms - UrlMappings 和表单 - 它们是如何工作的?

UrlMappings 是一个很棒的链接功能,但它们也适用于表单吗?

假设我们有这样的映射:

a<g:link controller="form" action="show" params="[a:'test'] />现在将被重写为 <a href="/appname/map/test" />

但是像这样的形式:

不会有同样的效果。这将导致请求/appname/form/show?a=whatever

我知道不能像链接一样在 HTML 创建时重写表单 - 主要是因为此时参数的值未知,但我希望这个 URL 将被重定向到“nice” URL。

有没有办法在 grails 中做类似的事情?还是我必须编写自己的重定向?

0 投票
1 回答
776 浏览

grails - Grails URLMappings 中的逻辑块

我的网站有类似“http://someRandomUsername.mysite.com”的网址。有时用户会尝试使用“http://www.someRandomeUsername.mysite.com”之类的网址。我想在我的 url 映射中有一些逻辑来处理这个问题。当我点击页面时,使用下面的映射,无论有没有不需要的 www,我都会得到:

2012-03-01 14:52:16,014 [http-8080-5] 错误 [localhost].[/ambit] - 装饰页面 java.lang.IllegalArgumentException 时发生未处理的异常:URL 映射必须提供控制器或视图名称映射到!

知道如何做到这一点吗?映射如下。

谢谢!杰森

静态映射 = {

0 投票
1 回答
738 浏览

grails - Grails URL映射适用于控制器但不适用于视图

不知何故,我的 Grails MVC 映射让我陷入了困境,但我不明白怎么做。

我有一个控制器 AController,它是我使用 Grails 命令行向导生成的。稍后,我为该控制器生成了一个视图以自定义视图。

AController 位于 [project]/grails-app/controllers/[package]/AController.groovy 中,视图 .gsp 位于 [project]/grails-app/views/A/ 中。

URLMappings.groovy 有:

当我运行应用程序并输入以下形式的 url:localhost:8080/[project]/A/list 时,正如预期的那样,我到达了 AController.groovy 中的方法 A.list。

但是,当我从 A.list 返回并期望框架路由到 [project]grails-app/views/A/ 中的 list.gsp 时,我看到一条 500 错误消息:

“URL 映射必须提供要映射到的控制器或视图名称!”

显然我在做一些愚蠢的事情,但我看不出我打破了什么。URLMappings.groovy 看起来是正确的。文件位置看起来正确。脚手架似乎是适当定制的。

有什么建议么?

0 投票
2 回答
213 浏览

grails - Grails - 管理视图 URL

这是问题:

我有一个网站项目(grails)我正在使用一堆无控制器视图(这是在 grails 中请求的临时站点重写,没有真正的功能(因此没有控制器))并且视图通过下列的:

其中“staticViewController”将视图输出为 HTML,无论它在哪里。

因此我的问题。

[site.com/about/something/dog.html] 呈现与 [site.com/about/dog.html] 呈现相同 [site.com/stinkybutt/dog.html]

从最后一个示例中,更大的问题变得明显,因为显然我没有(或不想要)名为“stinkybutt”的目录结构。

我可以在 HTTPD 中编写大量重定向来解决这个问题,但我猜有一个本地解决方案,因为其他使用 grails 的站点没有这个问题。

有什么建议么?

0 投票
1 回答
192 浏览

grails - grails urlMappings 中的参数化操作名称

我正在尝试将 JSON api 映射到我的控制器,例如:

/api/user/1/location GET --> Controller.getLocation()

/api/user/1/location POST --> Controller.setLocation()

我尝试了以下 url 映射规则,但没有任何运气:

任何人都尝试过这样的事情