java - JSP 文件中的 Lambda 表达式无法编译

标签 java jsp tomcat java-8 tomcat8

我已经尝试了 stackoverflow 上提到的大部分建议,但还没有找到解决方案。我遇到的错误如下。

An error occurred at line: 379 in the jsp file: /application-new-project_process.jsp
Lambda expressions are allowed only at source level 1.8 or above 

我正在使用 IntelliJ IDEA 2016.2 并应用了这些设置。

Project StructureProject, Project SDK to 1.8 (java version "1.8.0_102")

项目结构项目项目语言级别8.0 - Lambdas,类型注释等

SettingsBuild, Execution, DeploymentCompilerJava Compiler, 项目字节码版本1.8

SettingsBuild, Execution, DeploymentCompilerJava Compiler, 目标字节码版本1.8

我正在使用 Tomcat v8.0.36 并且有以下 JSP 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>
    <init-param> 
        <param-name>compiler</param-name> 
        <param-value>modern</param-value> 
    </init-param> 
    <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> 
    <init-param> 
        <param-name>suppressSmap</param-name> 
        <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup>
</servlet>

任何建议将不胜感激!

最佳答案

我使用 IntelliJ IDEA 2016.3.2,tomcat apache-tomcat-8.5.8,以下更改对我来说足够了:
1. 更改以下文件:apache-tomcat-8.5.8\conf\web.xml
2.修改

的配置
 <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
  1. 添加以下初始化参数:

    <初始化参数>
    compilerSourceVM
    <参数值>1.8

    <初始化参数>
    compilerTargetVM
    <参数值>1.8

完成。

关于java - JSP 文件中的 Lambda 表达式无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035001/

相关文章:

等待并行代码完成的java代码

java - 如何抑制标记为已弃用的 API 的警告。 @SuppressWarnings ("deprecation")似乎并没有抑制它

java - Drools 规则过滤数字属性低于列表总数百分比的元素

java - 我在 jsp 页面上检索下拉选项的数组值时遇到问题

apache - 将客户端证书从 Apache 转发到 Tomcat

eclipse - 使用 Tomcat 和示例安装工作区

java - 实现通用 CRUD Controller 的模式

java - Spring 重试 : method annotated with @Recover not being called

javascript - 请求从一个 JSP 分派(dispatch)到另一个 JSP

java - 带有 cookie 的数字格式异常 JSP 页面