在GSP中,是否可以创建到另一个GSP的直接链接?我知道我可以使用:
<g:createLink controller="user" action="foo"/>并在UserController中定义foo操作以仅显示相应的GSP
class UserController {
def foo = {}
}但是,有没有什么方法可以在不创建空的foo操作的情况下实现相同的结果?
谢谢,唐
发布于 2010-01-31 15:16:53
createLink tag适用于控制器操作,并且不会在url属性之外执行您想要的操作。
您总是可以通过以下方式直接访问gsp :结合使用link和resource标记的/user/foo.gsp。
<g:link url="${resource(dir:'user', file:'foo.gsp')}">user/foo.gsp</g:link>否则,您可以创建将请求直接映射到视图的URL映射。
class UrlMappings {
static mappings = {
"/user/foo"(view:"user/foo")
}
}使用Grails 1.2,您可以创建直接映射到视图的named URL Mapping:
class UrlMappings {
static mappings = {
name userFoo: "/user/foo"(view:"user/foo")
}
}然后将其与link标记一起使用:
<link:userFoo>User Foo</link:userFoo>或
<g:link mapping="userFoo">User Foo</g:link>发布于 2010-01-31 23:48:50
有一个uri属性是undocumented ,但您可以在source中看到它
<a href="${createLink(uri:'/path/page.gsp')}">link</a>HTH
发布于 2016-12-07 22:44:47
从Grails 2.x开始,这是不可能的。直接链接到.gsp的能力是一个安全缺陷,可以用来避免@Secured注释。URL映射方法仍然有效,如@Colin Harrington的答案所示。
https://stackoverflow.com/questions/2170386
复制相似问题