要在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(); });