• 今天在使用idea做练习时,某个jsp页面报错如下: 
    '<>'operator is not allowed for source level below 1.7 
    出错代码如下: 
    Map<String, String> genders = new HashMap<>(); 
    不难看出报错的原因是编译版本低于1.7时,’<>’这种省略类型的泛型语法不可用。
  • 搜索该错误,得到的答案大约为两种: 
    1. 大部分复制粘贴的答案都是在eclipse中遇见的该错误,解决方案是设置项目的java编译版本和jdk版本为1.7及以上。检查了我的idea的相关设置,都是1.8的版本没问题,该答案没有解决我的问题;
    2. 在使用泛型时不要写省略语法: 
      Map<String, String> genders = new HashMap<String, String>(); 
      可是这样等于使用了老版本的java语法,并没解决根本问题
  • 解决方法: 
    这里的问题其实是本地安装的tomcat中配置的jsp编译版本是低于1.7的,而设置IDE中的编译版本并不能解决这个问题,这里需要找到本地tomcat的安装目录下的web.xml文件,路径如下:\Tomcat\Tomcat7.0\conf\web.xml,打开以后找到JspServlet的配置如下:
     <servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup></load-on-startup>
</servlet>

在其中添加jsp编译版本的设置:

     <init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>

保存,OK,然后要记得在IDE中重新发布项目(注意清理缓存),在访问原来出问题的jsp页面,这次就不会报错了~

    • 涉及到的各个工具及版本: 
      IntelliJ IDEA 2017.1 x64 
      Tomcat 7.0 
      jdk1.8.0_65

最新文章

  1. 谈谈对Spring IOC的理解(转)
  2. SSH/SSL 源码编译安装简易操作说明
  3. 红黑树(Red-Black tree)
  4. 微博开发平台java SDK demo学习之friendships
  5. linux下securetty文件
  6. Maven的HTTP代理设置
  7. rtsp实时流通过rtmp推送到服务端
  8. winform 项目获取app.config 中appSettings节点数据
  9. poj2387(最短路)
  10. Node.js:模块
  11. electron 使用 node-ffi C++ 动态链接库(DLL)
  12. MySql全国省市区SQL语句
  13. Android Studio 设置不同分辨率的图标Icon
  14. centos系统安装第三方源EPEL
  15. Android 进度条按钮实现(ProgressButton)
  16. MySql的CURRENT_TIMESTAMP
  17. mina学习总结
  18. day10作业—(闭包迭代器递归)
  19. Android与互联网的交互方式有三种
  20. CentOS 6.x 安装vnc

热门文章

  1. WebKit的Platform接口部分
  2. php静态变量与方法与phar的使用
  3. 从零开始学习html(九)CSS的继承、层叠和特殊性
  4. 大数据时代,银行BI应用的方案探讨
  5. HCTF2018 pwn题复现
  6. Bootstrap源码分析系列之整体架构
  7. SQLSERVER NULL和空字符串的区别 使用NULL是否节省空间
  8. 将 Windows VM 移到其他 Azure 订阅或资源组
  9. Azure 中的 Windows 虚拟机概述
  10. 新建maven工程使用webapp插件弹出javax.servlet.http.HttpServlet was not found on the Java Build Path异常