1. 程式人生 > >idea javaweb專案 jsp頁面報錯:''operator is not allowed for source level below 1.7

idea javaweb專案 jsp頁面報錯:''operator is not allowed for source level below 1.7

  • 今天在使用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>3</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

相關推薦

idea javaweb專案 jsp頁面''operator is not allowed for source level below 1.7

今天在使用idea做練習時,某個jsp頁面報錯如下: '<>'operator is not allowed for source level below 1.7 出錯程式碼如下:

解決IDEA中的operator is not allowed for source level below 1.7

<>operator is not allowed for source level below 1.7 不難看出報錯的原因是編譯版本低於1.7時,’<>’這種省略型別的泛型語法不可用。 搜尋該錯誤,得到的答案大約為兩種:  大部分複製貼上的答案都是在ecl

mysql遠端連線 Host * is not allowed to connect to this MySQL server,解決方法

解決此問題有以下2個方法: localhost改成% 1.進入mysql的BIN目錄 注:root為管理員使用者名稱,password為使用者root的密碼: mysql -u root -p password mysql>use mysql; my

JSP頁面“Uncaught SyntaxError: Unexpected token <”

spa 標簽 round 個人 java expect 使用 src class   最近在做一個個人主頁博客網站的項目,遇到了這個問題。   當瀏覽器該頁面提示錯誤“Uncaught SyntaxError: Unexpected token <”時,瀏覽器通常情況

Springboot訪問jsp頁面javax.servlet.jsp.JspFactory.getJspApplicationContext

搭建springboot專案時,專案啟動成功,訪問jsp頁面跳轉時報錯,錯誤如下: java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servl

Spring AOP表示式Pointcut is not well-formed: expecting 'name pattern' at character position

  問題現象: java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoader

Spring AOP表達式Pointcut is not well-formed: expecting 'name pattern' at character position

ret reg tin lips aspect lock alua depend internal   問題現象: java.lang.IllegalStateException: Failed to load ApplicationContext at org.

Laravel 5.1 [AppHttpRequestsRequest] is not instantiable

like php 報錯 sts http 路徑 bin requests lin Laravel 5.1 報錯:[App\Http\Requests\Request] is not instantiable 錯誤提示: Whoops, looks like some

golang 在 centos 7 上編譯 import cycle not allowed

查看了環境變數,go env 看了安裝目錄和 go 的版本 go version 看了原始碼和第三方庫的下載情況。 go get ***   都沒有問題,準備重新安裝 go 因為發現與 win10 上的版本不一致 win10 上是 1.11, 正常 ce

gitPull is not possible because you have unmerged files解決方法

git pull 的時候報如下錯誤程式碼: error: Pulling is not possible because you have unmerged files. 嘗試用git stash沒有作用。 Pull is not possible because you have

轉載解決Navicat :1130-host ... is not allowed to connect to this MySql server,MySQL不允許從遠端訪問的方法

1.改表法。 可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從"localhost"改稱"%" mysql -u

react-native 編譯 undefined is not an object (evaluating '_react2.PropTypes.func')

情況通報: 因為是我的二維碼模組報錯,提示報錯程式碼如下 重要資訊是下面的紅色字型部分(Android 模擬器紅屏) undefined is not an object (evaluating '_react2.PropTypes.func')<unknown> D:\CDM_POS_AP

javascriptReferenceError: $ is not defined解決辦法

js報錯:ReferenceError: $ is not defined。 在執行重新整理專案介面時,通過瀏覽器控制檯發現錯誤ReferenceError: $ is not defined,如下圖所示: 部分介面程式碼如下: 解決方法: 我們不難發現script位置有問題,因

javaJunit單元測試Test is not an annotation type

今天寫一個小demo是用到單元測試,但是當我在方法上加上@Test的時候報錯:Test is not an annotation type 最後發現是因為我的同一個包裡面有一個叫做Test的類,衝突了。把Test類改個名字或者刪掉,問題解決。

MyBatisThere is no getter for property named 'xxx' in 'class java.lang.String'

在Mybatis的mapper檔案如果傳入的是一個字串型別的引數,且將該引數用來在<if test='"">判斷時,如果直接用引數名來判斷,則會報如標題所示的錯誤, 正確程式碼如下: &l

解決React Nativeundefined is not an object (evaluating 'sceneConfig.animationInterpolators')

呼叫this.props.navigator.resetTo出現以下問題 undefined is not an object (evaluating ‘sceneConfig.animationInt

webdriver Element is not clickable at point (993, 61). Other element would receive the click

今天跑指令碼發現出現了一個報錯:Element is not clickable at point (993, 61). Other element would receive the click 分析原因,首先肯定不是因為頁面元素不存在而無法點選。 再看了一下target

解決SeleniumElement is not clickable at point (x, y). Other element would receive the click

用Python寫路由器控制指令碼的時候遇到這個問題,Selenium提示如下: Message: Element is not clickable at point (1191.5, 143). Other element would receive the click:

MybatisThere is no getter for property named 'xxxx' in 'class xxxx

在網上看見了不少的處理方法,可能每個人遇到的問題一樣,但是出問題的地方不一樣,我所遇到的這個問題,我是如下處理的。我在做JUnit測試的是時候報的這個錯誤,報錯如下:Caused by: org.apache.ibatis.reflection.ReflectionExcep

異常處理MybatisThere is no getter for property named 'xxxx' in 'class xxx'

bat 變量 應該 img 分享 mybatis quest 情況 定義 /1、報錯信息: 2、根據報錯的信息,提示我們少了一個getter方法。那麽我們是不是真的就少了這個getter呢?這個時候更應該去檢查我們的model中是不是有某個詞寫錯了。因為當我們定義的這個變