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

在 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 回答
1

您可以签request.xhr入控制器,并根据该 if 语句的结果确定呈现模板或字符串。

于 2012-12-04T22:09:58.480 回答