分享

js文件中使用el表达式问题

 昵称15242507 2015-01-07

单独js文件不能用EL表达式

首先,JSP是由服务端执行的,EL表达式自然也由服务端解析执行,因此,如果EL所在的脚本在JSP页面内,它是可以获取到值的,这个值在服务器端返回到浏览器端时已经解析完毕,浏览器端只是呈现而已,但是如果在单独的JS文件中写EL,会怎么样呢?这个时候是无法获取的,因为javascript是客户端执行,单独的JS文件不在服务器的解析执行之中,EL是不起任何作用的,这个时候它就等同于普通的字符串,那么如何解决这种情况呢?
一:可以通过window.onload()来得到EL的值再传送给JS文件里的全局变量、方法进行变量初始化 。
二:可以在JSP页面中添加一个隐藏域,给它赋值,在单独的js文件中,通过获取隐藏域的值就间接的获取到了EL表达式的值。

举例

jsp页面(引用jquery文件和register.js     添加两个隐藏域)

  1. <script type="text/javascript"  
  2.             src="${pageContext.request.contextPath}/js/jquery-1.4.3.js">  
  3.          </script>  
  4. <script type="text/javascript"  
  5.             src="${pageContext.request.contextPath}/js/register.js">  
  6.          </script>  
  7. <input id="okPic" type="hidden" value="${pageContext.request.contextPath}/images/jsPic/ok.png"/>  
  8. <input id="errorPic" type="hidden" value="${pageContext.request.contextPath}/images/jsPic/error.png"/>  

register.js文件(设置全局变量ok,error       $(function(){   });当引用这个js文件的页面加载完毕就执行这个函数.相当于window.onload(),然后在其他函数中就可以直接引用ok,error全局变量.)

  1. var ok ="";        
  2. var error = "";  
  3. $(function(){                               
  4.     ok = $("#okPic").val();  
  5.     error = $("#errorPic").val();  
  6. });  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多