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