我正在使用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
怎么会发生这种情况!!
由于
答案 0 :(得分:0)
这不起作用。如果要从GSP设置一些会话范围的变量,则必须根据正常请求或AJAX调用控制器操作,其中将设置变量。因此,它也将与浏览器无关。