我正在尝试在grails 3中使用cookie。 i tried this plugin但我不知道为什么它根本不起作用..
cookieService.setCookie('username', customer?.email)
我使用此代码从gsp
调用它 <g:cookie name="username"/>
我也试过这种方式..
def cokusername = cookieService.setCookie('username', customer?.email)
println "cookieService.getCookie('username') = "+cookieService.getCookie('username')
redirect(controller: "toko",cokusername: cokusername)
这是我的tokoController.groovy
索引:
def index={
def toko = CifLogo.executeQuery("from CifLogo order by rand()",[max: 10])
// def itemRandom = Item.executeQuery("from Item where cif = :cif order by rand()",[max:12,cif:cif])
def awdf = cookieService.getCookie('username')
println "awdf = "+awdf
println "cokusername = "+params.cokusername
[tokoList:toko,cokusername:awdf]
}
更新
def index(){
def toko = CifLogo.executeQuery("from CifLogo order by rand()",[max: 10])
// def itemRandom = Item.executeQuery("from Item where cif = :cif order by rand()",[max:12,cif:cif])
def awdf = cookieService.getCookie('username')
println "awdf = "+awdf
println "cokusername = "+params.cokusername
[tokoList:toko,cokusername:awdf]
}
我试图像这样打印cookie
..
def awdf = request.getCookie('username')
println "awdf = "+awdf
println "cokusername = "+params.cokusername
request.cookies.each { println "${it.name} == ${it.value}" }
这就是结果
答案 0 :(得分:0)
从我能看到的这一行:
redirect(controller: "toko",cokusername: cokusername)
应该是:
redirect(controller: "toko",params:[cokusername: cokusername])
使用grails 3中的闭包的操作也会产生不希望的结果。你应该改为方法。因此这一行:
def index={
应该是:
def index(){
除此之外,似乎cookieService
代码应该可以正常工作,所以我只能假设它是由应该是方法的闭包索引引起的。
另一件事可能是您正在进行重定向,这将清除请求并且不会保留在重定向之前设置的任何Cookie
答案 1 :(得分:0)
我不知道为什么,但也许这是一个错误。
我将此代码用于setCookie
cookieService.setCookie(name:"username", value: customer?.email, maxAge: 24*60*60, path: "/")
阅读this code后。
我无法使用此代码删除Cookie。
cookieService.deleteCookie(cookieService.findCookie("username"))
因为当我打印cookieService.findCookie("username")
时,它会返回javax.servlet.http.Cookie@78cbf320
和方法deleteCookie(Cookie cookie)
所以我认为必须删除它。
但仍然可用。
所以我可以回答关于 setCookie 而非 deleteCookie
的问题我也试过这种方式删除cookie ..但仍然失败。
CookieService.setCookie(name:"username", value: "", maxAge: 0, path: "/")