這是一個js不能使用el表達式的例子,但是html也是一樣,如果不是jsp檔案都無法使用。
html不可以用jstl標籤。
el表達式(運用el表達式直接取得值時,例如,${msg},不需要為msg提供set get方法;但是當取得物件的屬性值時,
例如,user.name,則必須為name屬性提供set get方法)是jsp相關的概念,是在服務端執行的,服務端執行完成後再傳給客戶端瀏覽器,js是在客戶端瀏覽器執行的,el在js前就已經被執行了。
EL、JSTL以及其他各種標籤是在服務端執行好後再透過網路傳送給客戶端,瀏覽器用戶端收到後才會執行其中的js腳本。也就是說,el表達式生效的時候js程式碼還全都是文本,等js生效的時候早就沒了el表達式了,你可以在瀏覽器中查看源代碼,你會發現el標籤${}全沒了,都轉換成具體的值了。
jsp和js、html不是一個平面上的東西,它們不可能在同一個時刻同時執行,它們沒有任何交叉點。 所以標題中「使用」兩個字採用雙引號,並不是js真正地使用el表達式,而是使用el表達式最終轉換的值。
類似的,對於js中「使用」java程式碼,與使用el表達式是一個道理:JSP是先進行編譯把java程式碼都編譯出來形成一張完整的頁面再發到客戶端, js只是在客戶端執行,等到js執行的時候其實js已經看不到java程式碼了。
在js、html檔案中不能直接使用el表達式以及java程式碼(瀏覽器是識別不了jsp中el等標籤的:傳回給客戶端的結果是JSP文件執行的結果,不包含任何JSP語法)。但是el表達式、java程式碼、js腳本、jstl標籤等都可以在jsp檔案中使用,所以要想在js程式碼中使用el表達式的值或是java程式碼的值,可以透過jsp檔案這樣一個橋樑,達到目的!
js寫在jsp檔案裡,jsp能用的標籤(el表達式、jstl標籤、java程式碼等),js就能「用」;js單獨寫成一個文件,啥標籤都不能「用”,都沒有效。不過一般不建議js使用亂七八糟的jsp標籤。
以上是html可以用jstl標籤麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!