1、软件版本

IDEA版本:IntelliJ IDEA 2019.1.1

maven版本:apache-maven-3.6.1

Tomcat版本:tomcat-8.5

2、问题描述

IDEA使用如下图的webapp骨架时候,自动生成的web.xml文件的web-app版本是2.3的,导致EL表达式混乱,因为EL表达式是2.4以上版本才支持的。

3、解决方案

①找到maven-archetype-webapp的jar包位置,我的路径:

D:\Apache\Maven\Repository\org\apache\maven\archetypes\maven-archetype-webapp\1.4 

仅供参考,Maven后边的路径应该是一样的。

②用压缩包形式打开,不一定是WinRAR,其他的压缩工具也可以,但不要解压缩。

③然后找到依次点 archetype-resources\src\main\webapp\WEB-INF\web.xml 双击打开,然后把内容清除,不要关。

④打开tomcat的web.xml文件,我的路径:

C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\ROOT\WEB-INF 

我的tomcat是默认路径安装的,仅供参考。

打开后如下图,将图中红框部分复制到上边maven的web.xml文件中,然后保存。

PS:友情提示,上边的web-app标签中有一个metadata-complete="true",这是个大坑,因为web-app标签3.0以上版本是可以使用servlet的注解的,如下图:

再也不用去web.xml写那servlet的那一堆映射了(下图就是那一堆映射)

但是!!!

如果你忘记了改这个web-app标签里的metadata-complete的这个属性,你所写的注解都将失效!!!

该属性为true,则容器在部署时只依赖部署描述文件,忽略所有标注,如果不配置该属性,或者将其设置为false,则表示启动注解支持。当metadata-complete="false"时,web.xml和注解对于Servlet的影响同时起作用,两种方法定义的url-partten都可以访问到该Servlet,但是当通过web.xml定义的url-partten访问时,注解定义的属性将失效。
所以如果你想用servlet注解来配置servlet的话,复制到新的web.xml中时一定记得修改该属性为metadata-complete="false "!!!

4、再次用webapp框架新建的web.xml效果如图,web-app版本3.1,经测试EL表达式可以正常使用

PS:我是喜欢用servlet注解来配置servlet的,比较方便好用,所以上边的metadata-complete的属性也就改成了false。

IntelliJ IDEA 2019.1.1 maven框架web.xml中web-app版本过低导致不能正常使用EL表达式的解决方案的更多相关文章

  1. web.xml中Servlet3.1版本的头信息格式

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  2. web.xml中Servlet4.0版本的头信息格式

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmln ...

  3. 转:web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,刚刚就遇到了一个问题,由于项目中使用了quartz任务调度,quartz在web.xml中是使用listener进行监听的,使得在tomcat启动的时候能马上 ...

  4. IntelliJ IDEA 删除自定义的 Maven 框架依赖

    IntelliJ IDEA 删除自定义的 Maven 框架依赖 IntelliJ Idea中添加Maven Archetype,但是IntelliJ Idea中并没有提供删除的方法. windows中 ...

  5. Eclispe创建maven工程缺失web.xml报web.xml is missing and <failOnMissingWebXml> is set to true的错误

    Eclispe创建maven工程缺失web.xml报web.xml is missing and <failOnMissingWebXml> is set to true的错误,一看,还缺 ...

  6. 160715、在web.xml中注册IntrospectorCleanupListener解决Quartz等框架可能产生的内存泄露问题

    增加方式如下:web.xml中加入  <listener>    <listener-class>org.springframework.web.util.Introspect ...

  7. maven web项目中web.xml

    web.xml 不是web工程必须的. web.xml文件用来配置那些东西:欢迎页,servlet,filter等. web.xml文件中定义了多少种标签元素,web.xml 中就可以出现它的模式文件 ...

  8. 使用框架时,在web.xml中配置servlet时,拦截请求/和/*的区别。

    关于servlet的拦截设置,之前看了好多,说的都不太清除,明白. 最近明白了一些,总的来说就是保证拦截所有用户请求的同时,放行静态资源. 现整理如下: 一.我们都知道在基于Spring的Applic ...

  9. struts2在web.xml中配置详情

    web.xml是web应用中载入有关servlet信息的重要配置文件,起着初始化servlet,filter等web程序的作用. 通常,全部的MVC框架都须要Web应用载入一个核心控制器.那採取什么方 ...

随机推荐

  1. Spring MVC文件上传下载(转载)

    原文地址: http://www.cnblogs.com/WJ-163/p/6269409.html 上传参考 http://www.cnblogs.com/lonecloud/p/5990060.h ...

  2. vue和electron做的聊天应用表情包处理

    表情包库: https://apps.timwhitlock.info/emoji/tables/unicode <template> <div @click.stop> &l ...

  3. electron-vue 图片加载失败后使用默认头像

    <img :src="item.headUrl" alt="" class="contact-head" :onerror=" ...

  4. TeamViewer的替代品:realVNC

    TeamViewer的替代品:realVNC official web: realvnc: https://www.realvnc.com/ steps: 在需要被控制的PC上装上realVNC的服务 ...

  5. IDC装机检查思路

    交换机网口 网线 配线架 服务器网口灯 系统网卡驱动

  6. artTemplate字符串模板

    1.官网:http://aui.github.io/art-template/

  7. Windows 环境上域名配置

    1.Hosts位置 C:\Windows\System32\drivers\etc\hosts 2.Hosts内容 # Copyright (c) 1993-2009 Microsoft Corp. ...

  8. ubuntu 安装 tar.gz 文件

    ubuntu 安装 tar.gz 文件 本文链接:https://blog.csdn.net/caloriesung/article/details/81536144 tar zxvf FileNam ...

  9. VTK 编译过程中出现的hdf5长度(I64)错误解决办法

    最近在使用vtk和cuda做大规模图像处理方面的问题研究,在编译vtk的过程中发现第三方库hdf5不能够解决I64长度的探测识别问题.为了节约大家的时间,现在把我经过实践得到的解决方案共享出来,这里要 ...

  10. idea启动或install时报错:There are test failures,如何跳过测试?

    用idea  install项目时失败,报这样的错: [INFO] BUILD FAILURE [INFO] --------------------------------------------- ...