在javascript使用EL表达式注意事项

要在javascript中使用El表达式,只需在el表达式两端加上单引号或者双引号便可javascript

       如:java

 
<script>
     function(){
          alert('${sessionScope.user.name}');  //获取session中user对象的name属性
     }
         
</script>


也就是说只要使用$就要加单引号
jquery

顺便附一下EL内置对象数组


类别                  标识符              描述浏览器

JSP              pageContext     PageContext 实例对应于当前页面的处理服务器

域对象         pageScope             与页面做用域属性的名称和值相关联的 Map 类cookie

                   requestScope     与请求做用域属性的名称和值相关联的 Map 类session

                   essionScope     与会话做用域属性的名称和值相关联的 Map 类app

                   applicationScope     与应用程序做用域属性的名称和值相关联的 Map 类jsp

请求参数     param                      按名称存储请求参数的主要值的 Map 类

                   paramValues      将请求参数的全部值做为 String 数组存储的 Map 类

请求头         header                      按名称存储请求头主要值的 Map 类

                    headerValues      将请求头的全部值做为 String 数组存储的 Map 类

Cookie         cookie                      按名称存储请求附带的 cookie 的 Map 类

初始化参数   initParam              按名称存储 Web 应用程序上下文初始化参数的 Map 类


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

首先,JSP是由服务端执行的,EL表达式天然也由服务端解析执行,所以,若是EL所在的脚本在JSP页面内,它是能够获取到值的,这个值在服务器端返回到浏览器端时已经解析完毕,浏览器端只是呈现而已,可是若是在单独的JS文件中写EL,会怎么样呢?这个时候是没法获取的,由于javascript是客户端执行,单独的JS文件不在服务器的解析执行之中,EL是不起任何做用的,这个时候它就等同于普通的字符串,那么如何解决这种状况呢?

一:能够经过window.onload()来获得EL的值再传送给JS文件里的全局变量、方法进行变量初始化 。
二:能够在JSP页面中添加一个隐藏域,给它赋值,在单独的js文件中,经过获取隐藏域的值就间接的获取到了EL表达式的值。

举例:

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

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

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

var ok ="";        
var error = "";  
$(function(){                               
    ok = $("#okPic").val();  
    error = $("#errorPic").val();  
});
相关文章
相关标签/搜索