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