Grails 如何检测控制器已被g:include标记库调用?

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

为了发送适当的响应,我需要检测控制器操作是由经典的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:'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
}