"${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 也是伺服器端得東西