1
<g:if test="${!request?.xhr}">
<!doctype html>
<html>
    <head>
        <meta name="layout" content="home">
    </head>
    <body>
        <div class="row-fluid">
</g:if>
AJAX
<g:if test="${!request?.xhr}">
        </div>
    </body>
</html>
</g:if>

エラーが発生します:Grails tag [sitemesh:captureBody] was not closed.

Config.groovy私は設定しgrails.views.gsp.sitemesh.preprocess = falseましたが、これは役に立ちません。

if ステートメントで部分ビューを使用する方法。

4

2 に答える 2

1

コントローラをチェックインrequest.xhrし、そのifステートメントの結果に基づいてテンプレートまたは文字列をレンダリングするかどうかを決定できます。

于 2012-12-04T22:09:58.480 に答える
1

これを grails で処理するより良い方法は、メイン コンテンツを含むテンプレートをラップすることです。例えば:

//_body.gsp
AJAX

//view.gsp
<!doctype html>
<html>
    <head>
        <meta name="layout" content="home">
    </head>
    <body>
        <div class="row-fluid">
            <g:render template="body">
        </div>
    </body>
</html>

次に、コントローラーは、通常のリクエストでビュー全体をレンダリングするか、AJAX で本体のみをレンダリングできます。

于 2012-12-04T21:20:39.567 に答える