el表達(dá)式(運(yùn)用el表達(dá)式直接獲取值時(shí),例如,${msg},不需要為msg提供set get方法;但是當(dāng)獲取對(duì)象的屬性值時(shí),
例如,user.name,則必須為name屬性提供set get方法)是jsp相關(guān)的概念,是在服務(wù)端執(zhí)行的,服務(wù)端執(zhí)行完成后再傳給客戶端瀏覽器,js是在客戶端瀏覽器執(zhí)行的,el在js前就已經(jīng)被執(zhí)行了。
EL、JSTL以及其他各種標(biāo)簽是在服務(wù)端執(zhí)行好后再通過網(wǎng)絡(luò)傳送給客戶端,瀏覽器客戶端收到后才會(huì)執(zhí)行其中的js腳本。也就是說,el表達(dá)式生效的時(shí)候js代碼還全都是文本,等js生效的時(shí)候早就沒了el表達(dá)式了,你可以在瀏覽器中查看源代碼,你就會(huì)發(fā)現(xiàn)el標(biāo)簽${}全沒了,都轉(zhuǎn)化為具體的值了。
jsp和js、html不是一個(gè)平面上的東西,它們不可能在同一個(gè)時(shí)刻同時(shí)執(zhí)行,它們沒有任何交叉點(diǎn)。所以標(biāo)題中“使用”兩個(gè)字采用雙引號(hào),并不是js真正地使用el表達(dá)式,而是使用el表達(dá)式最終轉(zhuǎn)化的值。
類似的,對(duì)于js中“使用”java代碼,與使用el表達(dá)式是一個(gè)道理:JSP是先進(jìn)行編譯把java代碼都編譯出來形成一張完整的頁面再發(fā)到客戶端,js只是在客戶端執(zhí)行,等到j(luò)s執(zhí)行的時(shí)候其實(shí)js已經(jīng)看不到j(luò)ava代碼了。
在js、html文件中不能直接使用el表達(dá)式以及java代碼(瀏覽器是識(shí)別不了jsp中el等標(biāo)簽的:返回給客戶端的結(jié)果是JSP文件執(zhí)行的結(jié)果,不包含任何JSP語法)。但是el表達(dá)式、java代碼、js腳本、jstl標(biāo)簽等都可以在jsp文件中使用,所以要想在js代碼中使用el表達(dá)式的值或者是java代碼的值,可以通過jsp文件這樣一個(gè)橋梁,達(dá)到目的!
js寫在jsp文件里,jsp能用的標(biāo)簽(el表達(dá)式、jstl標(biāo)簽、java代碼等),js就能“用”;js單獨(dú)寫成一個(gè)文件,啥標(biāo)簽都不能“用”,都沒效。不過一般不建議js使用亂七八糟的jsp標(biāo)簽。
以上就是html可以用jstl標(biāo)簽么的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答