解決IDEA中JSTL標籤庫無效

問題說明:
jsp頁面EL表達式正常輸出,編譯時JSTL標籤可以正常提示,運行時標籤不起作用
問題描述:
jsp頁面鍵入<c有提示(編譯時可正常提示JSTL標籤),
但是在jsp頁面body中寫如下代碼時${2+2}</br><c:if test="${2>1}">${1+1}</c:if>,
部署起來之後,頁面可以顯示4 但是死活不顯示2(運行時JSTL標籤無效
也就是EL表達式好使,JSTL標籤庫不好使


前提,maven工程
如果使用IDEA在jsp頁面中使用JSTL標籤庫,
僅僅將標籤庫的約束文檔加入到setting設置中(不引入任何jstl相關jar包),
在jsp頁面使用jstl標籤會報如下異常




然後我們加入jstl的maven依賴
<!-- jstl標籤庫相關 -->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
然後就好使了。。。

TMD具體怎麼好使的我也不知道,我只知道爲了研究這個破B玩意花了我兩晚上的時間
如果你現在的JSTL標籤庫還不好使,繼續往下看,
我們前面說的頁面上引用的那兩個標籤庫,c和fmt的標籤庫就是從這個網站上下載下來的jar包解壓出來的
下這個壓縮包

約束文檔都在解壓後的tld文件目錄下



然後你可以選擇在Project Structure -> Module -> <項目名> -> Dependencies中加入解壓目錄下的lib文件夾下的兩個jar包


然後打上對勾,然後,Apply 然後OK 記得點OK


然後再次進入Project Structure


這時候你會發現WEB-INF的lib目錄下多了剛纔添加進去的兩個jar(jstl.jar&standard.jar)

然後Apply OK
重新編譯項目,ctrl+f9 build project也行,mvn compile也行
說實話我真不明白ctrl_f9 build projectmvn compile兩種編譯方式有何的區別
所以我的做法是,都來一遍....
有懂的人能給詳細解釋一下嗎。

由於之前加過jstl的maven依賴,我們又手動的添加了jstl的jar包
所以此時Tomcat啓動WEB的時候會有如下提示


不用管,看看你的jsp頁面上的jstl標籤庫好用了不~
不好用的話繼續往下看

在maven的pom文件裏再把這倆依賴加進去試試
這是網上給的一種解決方案,原文出處http://blog.csdn.net/aimbetter/article/details/45450353
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
</dependency>

附加:jsp頁面中的EL表達式不能正常使用
jsp頁面加入如下指令
<%@page isELIgnored="false" %>
鼠標點下EL表達式的$符號出現小燈泡後點小燈泡,
然後選擇Inject Language or reference 
在列表裏面選擇 EL(Experssion Language In JSP)



如果還沒能解決,試着重啓吧~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章