天天看點

EL表達式在js檔案中無效,在jsp頁面中的js中有效

"${xxxx}"在js檔案裡面擷取不到值。但是在jsp裡面卻可以擷取到值。

問題:

EL表達式在jsp頁面是有效的,可以擷取到值,如下:

<input id="alarm_level_toJS" type="text" style="display: none; width:178px;" value="${topo.alarm_level }">

前提是這段代碼是在xxx.jsp檔案中。

如果不是在jsp檔案中,而是把js和jsp代碼分開來寫的話,那麼,問題來了

var alarm_level = "${topo.alarm_level}";//js取不到topo的值

這時候獲得的值,就是後面的字元串啦。是以說根據這個值之後的邏輯就出問題了。

解決:

(方案1:)

可以在jsp頁面再用一個隐藏的input的來存儲你想得到的值,然後在js頁面就可以使用。

jsp添加一個:<input id="alarm_level_toJS" type="text" style="display: none; width:178px;" value="${topo.alarm_level }">

js中:    //var alarm_level = "${topo.alarm_level}";//js取不到topo的值

var alarm_level = $("#alarm_level_toJS").val();//前台用一個隐藏input傳遞參數

這樣就可以在js頁面使用啦。

(方案2:)

可以在jsp頁面來個全局變量

  <script>

        <%--JS global varilible--%> 

        var alarm_level = "${topo.alarm_level}";

</script> 

這樣在js頁面就可以直接使用這個全局變量:alarm_level

不需要再去擷取這個的值

為什麼:

el表達式是jsp檔案才支援的,js檔案是靜态檔案,伺服器會不會處理的直接就輸出了.

js是用戶端的東西

jsp 是伺服器端得東西

el 也是伺服器端得東西