【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程,默认的web.xml是这样的。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
 
<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>


可以看到默认的web.xml是2.3版本的,这版本不能识别EL表达式,非常不方便,所以一般都会替换成更高版本4.0。

解决方法主要有以下两种,一种是直接overwrites web.xml文件,替换内容,一种是永久修改创建的骨架基础文件。

#1-> 仅对当前项目有效,直接替换web.xml的内容即可

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>


#2-> 修改创建的骨架基础文件

在IDEA创建基于maven-archetype-webapp的web工程时,其实这个创建过程是依据一个特定的模板来创建的,而这个模板放置在路径为 org.apache.maven.archetypes:maven-archetype-webapp 。maven工程是不放置任何jar包的,所有的jar包都是放在仓库中,这里的模板其实也是jar包,放置在仓库中。

打开本地仓库,找到 [你的本地仓库地址]\org\apache\maven\archetypes\maven-archetype-webapp

打开【1.4】这个文件夹

找到 maven-archetype-webapp-1.4.jar 用解压文件直接打开,我这里用的WinRAR

找到 maven-archetype-webapp-1.4.jar\archetype-resources\src\main\webapp\WEB-INF\web.xml

直接双击打开web.xml,发现就是默认情况下的web声明,现在我们需要替换掉这个文件。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
 
<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>


如果能直接双击打开编辑,直接替换成以下的声明,保存即可。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>
但是也会遇到这样一种情况,直接双击以后默认用浏览器打开,无法直接编辑文件。这种情况下,可以先把web.xml解压到本地,然后修改替换保存之后。

在解压界面,右键->添加文件到压缩文件中,将修改后的web.xml替换到原来的位置,保存关闭退出即可。

需要特别注意的是,因为是.jar文件,不要整个文件解压到本地之后再替换操作,必须直接通过解压管理工具双击打开操作。

这样再次新建基于骨架创建的web工程就会发现默认的web.xml已经成功替换成我们需要的4.0版本啦。

参考资料:

https://blog.csdn.net/sinat_34104446/article/details/82895337?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://www.cnblogs.com/lee-yangyaozi/p/10970316.html
————————————————
版权声明:本文为CSDN博主「爱吃香草冰淇淋的阿喵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/coralime/article/details/104847223

猜你喜欢

转载自blog.csdn.net/ok060/article/details/133531800