在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();  
});
相關文章
相關標籤/搜索