<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语句使用局部视图的方法。
答案 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语句的结果确定呈现模板或字符串。