GSPで、別のGSPへの直接リンクを作成することは可能ですか?私は使用できることを知っています:
<g:createLink controller="user" action="foo"/>
UserControllerで、対応するGSPのみを表示するようにfooアクションを定義します
class UserController {
def foo = {}
}
foo
しかし、空のアクションを作成せずに同じ結果を達成できる方法はありますか?
ありがとう、ドン
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>
Grails 2.xの時点では、これは不可能です。.gspに直接リンクする機能は、@Secured
注釈を回避するために使用できるセキュリティ上の欠陥でした。@Colin Harringtonの回答に見られるように、URLマッピング方法は引き続き機能します。