1.js中使用el表達式要加雙引號或單引號:'${list}'
2.js變量獲取el表達式中的對象:不能直接獲取,直接獲取得到的是該對象的toString值。
有兩種方法:
一:el中直接寫對象的屬性var abc = '${list[0].index}';--------如用js數組變量裝el表達式對象的每一個屬性
二:先把對象轉換成json再把json轉換成對象賦值給js變量。
-
js控制中用到了el表達式,最開始源碼如下:
var
selected = ${requestScope.xxxxForm.recordNumPerPage}
這樣始終js錯誤,因為在第一次的時候requestScope.xxxxForm.recordNumPerPage為null。
-
於是在boss的指導下,簡單的加了兩個引號,代碼變成
var
selected = “${requestScope.xxxxForm.recordNumPerPage}”
功能自動實現。
總之,在js中使用el表達式一定要使用雙引號。
如果${sessionScope.userName}從服務器端獲取到的值是張三,那么最終瀏覽器解釋執行得到的就是如下這樣的結果
var message = 張三;
這樣肯定是不行的,javascript中字符串肯定是要用引號引起來的,像var message = "張三";或者是像var message = '張三';這樣才對,所以這下知道為什么在javascript中使用el表達式一定要用引號引起來了吧,不管是單引號還是雙引號,總之就是要用引號引起來。
像alert(${sessionScope.userName});這種寫法瀏覽器最終解釋執行得到的結果就是alert(張三);所以這樣寫肯定會有問題,只有alert("${sessionScope.userName}");這樣寫或者alert('${sessionScope.userName}');這樣寫才可以,瀏覽器最終解釋執行得到的結果就是alert("張三");和alert('張三');
還有就是如果${sessionScope.age}從服務器取出的是一個數字呢?比如${sessionScope.age}從服務器取出的值是16,那么要不要加引號呢?
alert(${sessionScope.age});瀏覽器最終解釋執行得到的結果就是alert(16);你們自己想想,javascript的語法中,數字要不要加引號呢?,在javascript中定義一個數字類型的變量像var age =16;這樣寫是沒有任何問題的,然后alert(age);可以正常彈出16,沒問題,如果我們像var age = "16" 或者像var age = '16'這樣寫呢?也沒問題,只不過這里加了引號的16就是一個字符串了。所以不管EL表達式從服務器上取到的值是字符串的還是數字,最好都加上引號,這樣做比較保險,也比較省事,不管是單引號還是雙引號,總之加上引號肯定沒問題。如果EL表達式從服務器上取到的值是數字,在javascript中給這個數字加上引號也沒關系,如果客戶端要用這個加了引號的數字做數學運算,我們可以利用javascript中的函數把這個加了引號的數字轉換成數字類型再做運算! 比如var age = "${sessionScope.age}" ,瀏覽器解釋執行后得到的結果是var age = "16";大不了我們在客戶端利用javascript的轉換函數,把age = "16"從字符串類型轉換為數字類型再做數學運算即可!