代碼如下(忽略編譯錯(cuò)誤,不影響結(jié)果)
最近剛換idea用上maven,之前一直都是用eclipse。這回踩了個(gè)坑,所以跟大家分享一下。
當(dāng)我準(zhǔn)備在idea上用maven創(chuàng)建ssm項(xiàng)目的時(shí)候,我發(fā)現(xiàn)頁(yè)面的jstl標(biāo)簽不生效,el標(biāo)簽和導(dǎo)入的c標(biāo)簽會(huì)直接被輸出。
例如上圖最后頁(yè)面顯示的是${name},并沒(méi)有輸出我定義的“呵呵”,在pom.xml文件中有jstl的依賴包,但死活不生效。
嘗試了很多方法,網(wǎng)上找了很多資料,想起之前用idea創(chuàng)建普通web項(xiàng)目的時(shí)候,導(dǎo)入c標(biāo)簽會(huì)報(bào)錯(cuò),需要手動(dòng)添加jstl的dtd文件,于是試了一下還是沒(méi)用。
最后我打開項(xiàng)目中的web.xml文件才發(fā)現(xiàn)頭信息是2.3版本的,如下圖。
可能2.3版本可能iselignored默認(rèn)不是false(這只是我的猜測(cè))所以在jsp頁(yè)面添添加<%@ page iselignored=“false” %>這個(gè)命令就jstl就生效了。
但每個(gè)jsp頁(yè)面都要添加這個(gè)命令是一件很繁瑣的事情,所以把web.xml的頭信息更換為更高的版本。
我記得好像是2.4版本就默認(rèn)設(shè)置iselignored=false,但版本也不要太高,要對(duì)應(yīng)tomcat的版本,比如4.01版本的就要對(duì)應(yīng)tomcat9.0、3.0版本要對(duì)應(yīng)tomcat7。
相關(guān)對(duì)應(yīng)版本可以自己去搜一下,這里不做詳細(xì)闡述。提供幾個(gè)web.xml的頭信息。
2.4
1
2
3
4
5
6
7
8
|
<?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
1
2
3
4
5
6
|
<?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
1
2
3
4
5
6
|
<?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> |
但還會(huì)有個(gè)問(wèn)題,那就是每次創(chuàng)建maven項(xiàng)目都要去修改這個(gè)web.xml文件也很繁瑣,所以還有個(gè)一勞永逸的方法。
通過(guò)上圖我們可以發(fā)現(xiàn)我們用idea創(chuàng)建項(xiàng)目的時(shí)候,是通過(guò)maven倉(cāng)庫(kù)中的maven-archetype-webapp這個(gè)jar包創(chuàng)建的,而org.apache.maven.archetypes是這個(gè)jar包在倉(cāng)庫(kù)中的地址。
把maven-archetype-webapp-1.3.jar解壓一個(gè)副本出來(lái),然后可以在archetype-resources\src\main\webapp\web-inf
目錄下修改立面的web.xml文件,或者直接刪掉也可以,這取決于你的項(xiàng)目是否用得上web.xml這個(gè)配置文件。
然后把修改好的web.xml復(fù)制,把maven-archetype-webapp-1.3.jar
中的web.xml文件刪除,再把復(fù)制好的文件粘貼進(jìn)去。
這種方式同樣也可以對(duì)pom.xml文件進(jìn)行初始化的配置。
總結(jié)
原文鏈接:https://blog.csdn.net/narutom_cxc/article/details/82753375