こんにちは(下手な英語でごめんなさい)
簡単に思える質問があります。remoteLink を使用して Cookie を設定し、それに応じて Cookie 値を使用したいと考えています。正しい動作を得るには、リンクを 2 回クリックする必要があるため、効率的ではありません。テンプレートの呼び出し後にCookieの値が送信されるためだと思われます。
ここで私の 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>
ここに私のコントローラー:
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]
}
では、テンプレートの呼び出しの前に Cookie の値が確実に送信されるようにするにはどうすればよいでしょうか。