Grails 如何检测控制器已被g:include标记库调用?
为了发送适当的响应,我需要检测控制器操作是由经典的HTTP GET请求、AJAX请求还是标记库请求的 例如,考虑以下代码片段:Grails 如何检测控制器已被g:include标记库调用?,grails,gsp,Grails,Gsp,为了发送适当的响应,我需要检测控制器操作是由经典的HTTP GET请求、AJAX请求还是标记库请求的 例如,考虑以下代码片段: class CommunityController { def show = { def users = getUsers() if (/* WHAT IS THE CODE HERE??? */) //g:include request => render 'show' template only render template
class CommunityController {
def show = {
def users = getUsers()
if (/* WHAT IS THE CODE HERE??? */) //g:include request => render 'show' template only
render template:'show', model=[users]
else if (request.xhr) //Ajax => we send JSON content
render users as JSON
else //Classic request => we render 'show' GSP page
[users]
}
}
…如何检测已通过g:include标记库调用该操作
谢谢。您可以这样测试它:
import org.springframework.web.util.WebUtils
if (request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)) {
// request was included
}