在Grails中设置会话变量时出现奇怪的Web浏览器行为

时间:2017-07-02 13:26:30

标签: google-chrome grails internet-explorer-11 session-variables

我正在使用Grails 2.5.1开发应用程序我在网络浏览器中有一些奇怪的行为(Chrome 59.0.3071.115和Internet Explorer 11),我正在做什么正在GSP中设置session变量并在控制器中进行检查。

在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)
}
在按 Chrome id=login 链接后使用id=HR时输出

checking session null
在按 Internet explorer 链接后使用id=login时输出

 checking session true

怎么会发生这种情况!!

由于

1 个答案:

答案 0 :(得分:0)

这不起作用。如果要从GSP设置一些会话范围的变量,则必须根据正常请求或AJAX调用控制器操作,其中将设置变量。因此,它也将与浏览器无关。