13

GSPで、別のGSPへの直接リンクを作成することは可能ですか?私は使用できることを知っています:

<g:createLink controller="user" action="foo"/>

UserControllerで、対応するGSPのみを表示するようにfooアクションを定義します

class UserController {
    def foo = {}
}

fooしかし、空のアクションを作成せずに同じ結果を達成できる方法はありますか?

ありがとう、ドン

4

3 に答える 3

25

createLinkタグは、コントローラーアクションで使用するように調整されており、url属性の外で必要なことを実行しません。

リンクタグとリソース/user/foo.gspタグを組み合わせて、いつでも直接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を使用すると、ビューに直接マップする名前付きURLマッピングを作成できます。

class UrlMappings {
    static mappings = {
        name userFoo: "/user/foo"(view:"user/foo")
    }
}

次に、リンクタグとともに使用します。

<link:userFoo>User Foo</link:userFoo>

また

<g:link mapping="userFoo">User Foo</g:link>
于 2010-01-31T07:16:52.950 に答える
13

文書化されていないuri属性がありますが、ソースで確認できます:

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

HTH

于 2010-01-31T15:48:49.790 に答える
0

Grails 2.xの時点では、これは不可能です。.gspに直接リンクする機能は、@Secured注釈を回避するために使用できるセキュリティ上の欠陥でした。@Colin Harringtonの回答に見られるように、URLマッピング方法は引き続き機能します。

参照:GRAILS-7542:ビューにはURLパターンを介してアクセスできます

于 2016-12-07T14:44:47.233 に答える