在GSP中,是否可以创建与另一个GSP的直接链接?我知道我可以使用:直接链接到GSP
<g:createLink controller="user" action="foo"/>
,并在UserController中定义foo的行动只是显示相应的GSP
class UserController {
def foo = {}
}
但有什么办法可以达到同样的效果,而无需创建空foo
操作?
谢谢, 唐
在GSP中,是否可以创建与另一个GSP的直接链接?我知道我可以使用:直接链接到GSP
<g:createLink controller="user" action="foo"/>
,并在UserController中定义foo的行动只是显示相应的GSP
class UserController {
def foo = {}
}
但有什么办法可以达到同样的效果,而无需创建空foo
操作?
谢谢, 唐
的createLink tag是面向与控制器操作使用,而你是想url属性之外什么也不会做。
您总是可以通过/user/foo.gsp
直接获得gsp,结合link和resource标签。
<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>
由于Grails的2.X的,这是不可能的。直接链接到.gsp的能力是一个安全漏洞,可以用来避免注释。正如@Colin Harrington的答案所示,URL映射方法仍然有效。
嘿戴夫,路径是什么?我试过“/views/p.gsp”和“grails-app/views/p.gsp”都没有工作。 – 2014-08-12 14:20:39
删除/ views /你的路径,只是做p#而不是p.gsp,它应该解决。 – 2014-10-23 19:59:23