Maven的Web工程中${pageContext.request.contextPath}获取相对路径无效
开发环境:Maven 3.6.0 || jdk 1.8 || Spring 4
摄影:Zahrin Lukman,来自Unsplash
解决方案一(亲测有效)
将 web.xml 文件中的 标签的版本修改高一些
<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>
<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_3_1.xsd"
version="3.1" metadata-complete="true">
</web-app>
原 web.xml
<web-app></web-app>
方案二(亲测无效且有毒)
这种方法由于没成功我就不详细介绍了,大概说一下,因为用 maven 创建的 webapp 项目是模板的,这第二种方法直接就是去修改模板了,但是这个模板藏得很深,而且我修改了之后,我的 maven 直接用不了了,导致我直接重装的 maven,重装之后每次在命令行运行 mvn 命令就会报错,目前还无法解决,但还不至于影响我在 IDEA 中开发,说来也怪,在 IDEA 中一点事都没有,但是一旦执行 mvn -V 还是会报错,所以这个方法谨慎使用,最好别用,虽然每次都要改一次 web.xml 文件,但不至于把自己的软件搞坏,如果报错解决了再来更新
找到为什么出错了,不好意思,命令打错了,是 mvn -version 不是 mvn -V 丢脸丢大发了,但是这个方法任然不可用!!!