2010-10-19 27 views
3

Pour envoyer une réponse appropriée, je dois détecter si l'action du contrôleur a été demandée par une requête HTTP GET classique, une requête AJAX ou une balise g:include lib.Comment détecter qu'un automate a été appelé par g: include tag lib?

Par exemple, étant donné le fragment de code suivant:

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] 
    } 
} 

... Comment puis-je détecter que l'action a été appelé par un g: balise include lib?

Merci.

Répondre

5

Vous pouvez le tester comme ceci:

import org.springframework.web.util.WebUtils 

if (request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)) { 
    // request was included 
} 
+0

Merci. Je vais essayer et mettre à jour ma réponse – fabien7474

+0

Cela fonctionne comme un charme! – fabien7474