0
設置會話變量

我正在開發使用Grails 2.5.1我在網絡瀏覽器一個奇怪的行爲應用器(Chrome 59.0.3071.115和Internet Explorer 11),我在做什麼的設置session變量在GSP中並在控制器中檢查。奇怪的網頁瀏覽器的行爲而Grails的

在GSP我是會話變量isHR設置true如果用戶點擊鏈接id=HR

這裏是我的GSP:

<body> 
    <script> 

$("#HR").on('click', function() { 
    alert ("hiii") 
    $(document).html("<g:set value="true" var="isHR" scope="session"/>"); 
}); 

</script> 

<li ><g:link controller="login" action="auth" elementId='login'> 
         <g:message code='spring.security.ui.login.login' /> 
         <span class="glyphicon glyphicon-log-in"></span> 
        </g:link></li> 
<li> 

<g:link elementId='HR' controller="login" action="auth" > 

         <g:message code='employmentSeeker.login.link' /> 
         <span class="glyphicon glyphicon-log-in"></span> 

         </g:link></li> 


</body> 

這裏是我檢查的isHR會話控制器變量:

def create() { 
    log.info ("Creating new User") 
    println "checking session " +session.isHR 
    respond new Users(params) 
} 

輸出,同時使用同時採用

checking session null 

輸出Internet explorer按下與id=login鏈接後:3210按下與id=loginid=HR鏈接後

checking session true 

爲什麼這可能發生!

謝謝

回答

0

這是行不通的。如果你想從GSP設置一些會話範圍的變量,你必須調用一個控制器動作,或者按照普通的請求或者AJAX來設置變量。因此它也將是瀏覽器不可知的。

+0

爲什麼Grails中有像'' – Sherif

+1

的''在頁面渲染,而不是點擊調用。所以,爲了設置點擊,你必須按照我提到的方式進行操作 – injecteer