Hello (Sorry for my poor English),
I have a question which could seem simple : I want to use remoteLink to set a cookie and use cookie value in response. It's not efficient, because I must click Twice on the link to obtain correct behavior. I suspect it's because cookie value is sent after template's call.
Here my gsp :
${agence.delegation}
<small>
<g:if test="${cookie(name:'delegationId') == agence.id.toString()}">
<g:remoteLink controller="docDelegationSite"
action="deleteDefaultAgency"
update="defautAgencyId"
params="${[delegationId: agence.id]}">
Changer d'agence par défaut
</g:remoteLink>
</g:if>
<g:else>
<g:remoteLink controller="docDelegationSite"
action="defineDefaultAgency"
update="defautAgencyId"
params="${[delegationId: agence.id]}">
Définir comme agence par défaut.
</g:remoteLink>
</g:else>
</small>
Here my controller :
def defineDefaultAgency() {
def agence = DocDelegationSite.read(params.delegationId)
cookieService.setCookie(response, 'delegationId', params.delegationId)
render template: '/docDelegationSite/delegationCookie',
model: [agence: agence]
}
def deleteDefaultAgency() {
def agence = DocDelegationSite.read(params.delegationId)
cookieService.setCookie(response, 'delegationId', null)
render template: '/docDelegationSite/delegationCookie',
model: [agence: agence]
}
So, how te be sure that cookie's value is sent before template's call ?
The cookie is available from the next http request. I think you have not clear cookie behavior. Take a look at http cookie