ajax请求的圣杯局部视图

时间:2012-12-04 21:06:53

标签: grails partial-views

<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语句使用局部视图的方法。

2 个答案:

答案 0 :(得分: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上呈现正文。

答案 1 :(得分:1)

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