4

タイトルが示すように...私はgrailsを使用してWebページを構築していますが、grailsがsitemeshを使用してGSPをメッシュしていることを知っています。いくつかのグーグルを行ったところ、gsps を「並べて表示」する 2 つの方法が見つかりました (g:applyLayout および g:render テンプレート タグ)。どちらも gsp を「タイリング」するように見えるので、私の質問は、違いは何ですか?

編集:

たとえば、タイル定義を使用します。

<tiles-definitions>
  <definition name="myapp.homepage" template="/layouts/classic.jsp">
    <put-attribute name="title" value="Tiles tutorial homepage" />
    <put-attribute name="header" value="/tiles/banner.jsp" />
    <put-attribute name="menu" value="/tiles/common_menu.jsp" />
    <put-attribute name="body" value="/tiles/home_body.jsp" />
    <put-attribute name="footer" value="/tiles/credits.jsp" />
  </definition>
</tiles-definitions>

tiles:addAttribute を使用して、ページを jsp に「挿入」します。

ナビゲートするページではない gsp (「タイル」) は、grails のレイアウトに配置する必要があることを理解していました。したがって、私が懸念している問題は、1. grails/sitemesh を最も効果的に使用してこれを行う方法と、2. レイアウトが私が信じているものではない場合、それは何ですか?

4

2 に答える 2

2

applyLayout と render の主な違いは、特定のページまたはページのセクションに全体的なスタイリング/配置を適用するために applyLayout がより使用されることだと思います。たとえば、

<g:applyLayout name="myLayout" url="http://www.google.com" />

「myLayout」を google.com URL ページに適用し、そのタグを含めた場所に配置します。

render タグを他のほとんどすべてにいつ使用する必要があるかについての私の理解。特定のテンプレート gsp セクションをレンダリング (html を作成) します。この構文を使用して、コレクション内の各アイテムに対して html の特定のセクション (別名テンプレート) を何度もレンダリングできると特に便利です。

<g:render template="displaybook" collection="${books}" /> 

ただし、次のようなものを使用できます

<g:applyLayout name="myLayout" template="displaybook" params="[books: books]" />

テンプレート「displaybook」に「​​myLayout」の別のレイアウトを適用したい場合。

それが役立つことを願っています

トム

于 2013-07-26T04:56:33.077 に答える
1

これは、grails/sitemesh を最も効果的に使用する方法に関する質問に答える優れた例です。

于 2013-07-18T18:49:50.600 に答える