zoukankan      html  css  js  c++  java
  • jsp泛型支持

    • 今天在使用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文件,路径如下:TomcatTomcat7.0confweb.xml,打开以后找到JspServlet的配置如下
     1     <servlet>
     2         <servlet-name>jsp</servlet-name>
     3         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
     4         <init-param>
     5             <param-name>fork</param-name>
     6             <param-value>false</param-value>
     7         </init-param>
     8         <init-param>
     9             <param-name>xpoweredBy</param-name>
    10             <param-value>false</param-value>
    11         </init-param>
    12         <load-on-startup>3</load-on-startup>
    13     </servlet>

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

    1     <init-param>
    2         <param-name>compilerSourceVM</param-name>
    3         <param-value>1.8</param-value>
    4     </init-param>
    5     <init-param>
    6         <param-name>compilerTargetVM</param-name>
    7         <param-value>1.8</param-value>
    8     </init-param> 

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

      • 涉及到的各个工具及版本: 
        IntelliJ IDEA 2017.1 x64 
        Tomcat 7.0 
        jdk1.8.0_65
  • 相关阅读:
    yii2 批量插入
    yii2 ArrayHelper的19个函数+使用实例+功能详解
    thinkphp phpexcel
    yii2 ActiveForm beforeSubmit用法
    YII2项目常用技能知识总结
    Redis 的 fields 遇到的问题
    spring boot +mybatis+druid 多数据源配置
    简单使用shell 自动打包,发布项目 脚本
    cmpp 短信平台
    mysql workbench 导出表结构
  • 原文地址:https://www.cnblogs.com/evilliu/p/8645507.html
Copyright © 2011-2022 走看看