根據所使用的Tomcat版本,由tomcat提供的JSP引擎使用特定的Java默認版本來編譯和運行JSP。
Tomcat 7使用1.6版本
compilerSourceVM - 什麼JDK版本是源 與文件兼容? (默認值:1.6)
compilerTargetVM - 生成的文件兼容哪個JDK版本 ? (默認值:1.6)
Tomcat 8使用1.7版本
compilerSourceVM - 什麼JDK版本是源 與文件兼容? (默認值:1.7)
compilerTargetVM - 生成的文件兼容哪個JDK版本 ? (默認值:1。7)
Tomcat 9使用1.8版本
compilerSourceVM - 什麼JDK版本是源 與文件兼容? (默認值:1.8)
compilerTargetVM - 生成的文件兼容哪個JDK版本 ? (默認值:1.8)
當然,如果默認值與您的要求不符,您可以更改使用的版本。
你可以通過在全局$CATALINA_BASE/conf/web.xml
修改申報 的 org.apache.jasper.servlet.JspServlet
Servlet的初始化參數。
<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>
...
例如指定1.8
版本同時作爲源和目標的JSP文件,你應該改變它在此:
例如tomcat的8分佈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>
<!-- added params -->
<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>
<!-- end added params -->
<load-on-startup>3</load-on-startup>
</servlet>
...
太棒了。 最後,我們能夠升級到Tomcat 7,但它看起來像你的解決方案會取得訣竅。 –
您也可以將它添加到您的應用程序的'web.inf'中。 –