2012-07-23 61 views
1

你好(對不起,我的英文不好),Grails的RemoteLink和餅乾

我有一個問題,這似乎很簡單: 我想用remoteLink設置cookie和響應使用cookie值。 效率不高,因爲我必須在鏈接上點擊兩次才能獲得正確的行爲。 我懷疑這是因爲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] 
} 

那麼,如何TE確保cookie的值是模板的調用之前發出?

回答

0

Cookie可從下一個http請求中獲得。我認爲你還沒有清除Cookie行爲。看看http cookie