直接链接到GSP

Dón*_*nal 13 grails gsp

在GSP中,是否可以创建与另一个GSP的直接链接?我知道我可以用:

<g:createLink controller="user" action="foo"/>
Run Code Online (Sandbox Code Playgroud)

并在UserController中定义foo动作以显示相应的GSP

class UserController {
    def foo = {}
}
Run Code Online (Sandbox Code Playgroud)

但是,有什么办法可以在不创建空foo动作的情况下实现相同的结果吗?

谢谢,唐

Col*_*ton 25

建立连结标签是面向与控制器操作使用,而你是想url属性之外什么也不会做.

您可以直接/user/foo.gsp通过链接资源标记的组合来获取gsp .

<g:link url="${resource(dir:'user', file:'foo.gsp')}">user/foo.gsp</g:link>
Run Code Online (Sandbox Code Playgroud)

您可以创建一个URL请求,将请求直接映射到视图.

class UrlMappings {
    static mappings = {
        "/user/foo"(view:"user/foo")
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Grails 1.2,您可以创建一个直接映射到视图的命名URL映射:

class UrlMappings {
    static mappings = {
        name userFoo: "/user/foo"(view:"user/foo")
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将其与链接标记一起使用:

<link:userFoo>User Foo</link:userFoo>
Run Code Online (Sandbox Code Playgroud)

要么

<g:link mapping="userFoo">User Foo</g:link>
Run Code Online (Sandbox Code Playgroud)


Dav*_*wer 13

有一个没有文档的uri属性,但你可以在源代码中看到它:

<a href="${createLink(uri:'/path/page.gsp')}">link</a>
Run Code Online (Sandbox Code Playgroud)

HTH