2011-12-15 9 views
17

Sto provando a creare un cookie utilizzando Grails 2 (RC3). Lo sto utilizzando per un'applicazione di canvas di Facebook, il che significa che ad ogni aggiornamento del browser, la sessione viene persa.Come posso creare e recuperare i cookie in Grails 2.0?

Ho provato con il plugin cookie, ma sembra che non è compatibile con Grails 2.

Qualsiasi aiuto sarebbe molto apprezzato!

risposta

31

È possibile recuperare il valore di un cookie in uno SPG utilizzando il tag <g:cookie>

Hello <g:cookie name="myCookie" /> 

È inoltre possibile utilizzare questo tag da un controllore:

String name = g.cookie(name: 'myCookie') 

È possibile impostare un cookie utilizzando il servlet API

Cookie cookie = new Cookie("myCookie","Cookie Monster") 
cookie.maxAge = 100 
response.addCookie(cookie) 
+0

Impressionante. Grazie mille. C'è un modo per ottenere un cookie dalla richiesta per nome o devo ottenere request.getCookies() e quindi analizzarlo da lì? – cavneb

+5

Ho trovato la risposta a questa domanda: 'def signedRequestCookie = request.cookies.find {it.name == 'signed_request'}' ... Grazie ancora! – cavneb

+1

L'esempio precedente mostra come ottenere un cookie per nome 'g.cookie (nome: 'myCookie')' –

3

È possibile utilizzare Cookie Plugin:

// Inject service 
def cookieService 
... 
// This sets a cookie with the name `username` to the value `admin`  with a expiration set to a week, defined in seconds 
cookieService.setCookie('username', 'admin', 7 * 24 * 60) 
cookieService.getCookie('username') // returns 'admin' 
cookieService.deleteCookie('username') 
Problemi correlati