解決IDEA中Maven項目中JSTL標(biāo)簽無效問題
代碼如下(忽略編譯錯誤,不影響結(jié)果)

最近剛換IDEA用上Maven,之前一直都是用Eclipse。這回踩了個坑,所以跟大家分享一下。
當(dāng)我準(zhǔn)備在IDEA上用Maven創(chuàng)建SSM項目的時候,我發(fā)現(xiàn)頁面的JSTL標(biāo)簽不生效,EL標(biāo)簽和導(dǎo)入的C標(biāo)簽會直接被輸出。
例如上圖最后頁面顯示的是${name},并沒有輸出我定義的“呵呵”,在pom.xml文件中有jstl的依賴包,但死活不生效。
嘗試了很多方法,網(wǎng)上找了很多資料,想起之前用IDEA創(chuàng)建普通web項目的時候,導(dǎo)入C標(biāo)簽會報錯,需要手動添加jstl的dtd文件,于是試了一下還是沒用。
最后我打開項目中的web.xml文件才發(fā)現(xiàn)頭信息是2.3版本的,如下圖。

可能2.3版本可能isELIgnored默認(rèn)不是false(這只是我的猜測)所以在jsp頁面添添加<%@ page isELIgnored=“false” %>這個命令就jstl就生效了。
但每個jsp頁面都要添加這個命令是一件很繁瑣的事情,所以把web.xml的頭信息更換為更高的版本。
我記得好像是2.4版本就默認(rèn)設(shè)置isELIgnored=false,但版本也不要太高,要對應(yīng)tomcat的版本,比如4.01版本的就要對應(yīng)tomcat9.0、3.0版本要對應(yīng)tomcat7。
相關(guān)對應(yīng)版本可以自己去搜一下,這里不做詳細(xì)闡述。提供幾個web.xml的頭信息。
2.4
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> </web-app>
2.5
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> </web-app>
3.0
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> </web-app>
但還會有個問題,那就是每次創(chuàng)建Maven項目都要去修改這個web.xml文件也很繁瑣,所以還有個一勞永逸的方法。

通過上圖我們可以發(fā)現(xiàn)我們用IDEA創(chuàng)建項目的時候,是通過Maven倉庫中的maven-archetype-webapp這個jar包創(chuàng)建的,而org.apache.maven.archetypes是這個jar包在倉庫中的地址。

把maven-archetype-webapp-1.3.jar解壓一個副本出來,然后可以在archetype-resources\src\main\webapp\WEB-INF目錄下修改立面的web.xml文件,或者直接刪掉也可以,這取決于你的項目是否用得上web.xml這個配置文件。
然后把修改好的web.xml復(fù)制,把maven-archetype-webapp-1.3.jar中的web.xml文件刪除,再把復(fù)制好的文件粘貼進(jìn)去。
這種方式同樣也可以對pom.xml文件進(jìn)行初始化的配置。
總結(jié)
相關(guān)文章
Mybatis之類型處理器TypeHandler的作用與自定義方式
這篇文章主要介紹了Mybatis之類型處理器TypeHandler的作用與自定義方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
OpenFeign實現(xiàn)微服務(wù)間的文件下載方式
這篇文章主要介紹了OpenFeign實現(xiàn)微服務(wù)間的文件下載方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
EasyExcel實現(xiàn)讀寫Excel文件的示例代碼
EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單、節(jié)省內(nèi)存著稱。它可以在盡可能節(jié)約內(nèi)存的情況下支持讀寫百M(fèi)的Excel,所以本文就將利用它實現(xiàn)讀寫Excel文件,感興趣的可以了解一下2022-08-08
SpringCloud Gateway 權(quán)限認(rèn)證的實現(xiàn)
Spring Cloud Gateway 作為網(wǎng)關(guān)層,承擔(dān)著請求轉(zhuǎn)發(fā)、權(quán)限校驗等重要職責(zé),本文主要介紹了SpringCloud Gateway 權(quán)限認(rèn)證的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2025-04-04
Java實現(xiàn)計網(wǎng)循環(huán)冗余檢驗算法的方法示例
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)計網(wǎng)循環(huán)冗余檢驗算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
logback TimeBasedRollingPolicy按天生成日志源碼解析
這篇文章主要為大家介紹了logback TimeBasedRollingPolicy按天生成日志源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

