在js文件中写el表达式取不到值的原因及解决方法

今天在js文件中,写el表达式取不到值(代码如下),百度一翻,现总结如下: 

1、javascript是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以取不到值 

2、要想获取"${isLogin}"的值,可以在jsp中,用一个全局变量接收,然后再js中使用 

3、注意:在使用时,注意要添加双引号,如var isLogin="${isLogin}"; 

$(function(){ 

var isLogin="${isLogin}"; 
if(isLogin==='1') 
{ 
typeShow(".congra"); 
} 
//不是来自活动页面 
else if(isLogin==='10001') 
{ 
typeShow(".randToContent"); 
setTimeout(function(){ 
window.location.href=randUrl; 
}, 3000); 

} 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题可能是由于JSP页面使用了异步加载(Ajax)导致的。异步加载会导致新的HTTP请求,而这个请求并没有携带原先的session信息。因此,可以考虑在异步请求手动添加session信息,或者在JSP页面将session信息保存到JavaScript变量,在异步请求使用该变量传递session信息。 下面是一些可能的解决方案: 1. 在异步请求手动添加session信息 在异步请求添加如下代码: ```java HttpSession session = request.getSession(); ``` 这将获取当前session对象。然后,可以将session信息添加到异步请求: ```javascript $.ajax({ url: "someurl", data: {sessionid: '<%= session.getId() %>'}, success: function(data) { // handle response } }); ``` 这里将session ID添加到请求参数。 在服务器端,可以通过session ID获取到session对象: ```java String sessionId = request.getParameter("sessionid"); HttpSession session = request.getSession(false); if (session != null && session.getId().equals(sessionId)) { // session found } else { // session not found } ``` 2. 将session信息保存到JavaScript变量JSP页面添加如下代码: ```java <% HttpSession session = request.getSession(); String username = (String) session.getAttribute("username"); %> <script> var username = '<%= username %>'; </script> ``` 这里将session的username属性保存到JavaScript变量。 在异步请求,可以使用该变量传递session信息: ```javascript $.ajax({ url: "someurl", data: {username: username}, success: function(data) { // handle response } }); ``` 在服务器端,可以直接获取到该变量: ```java String username = request.getParameter("username"); ``` 这里假设在异步请求传递了username参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值