当前位置: 首页 > 知识库问答 >
问题:

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

乜栋
2023-03-14

我已经尝试了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,并应用了这些设置。

项目结构项目项目SDK1.8(java版本“1.8.0_102”)

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

设置构建、执行、部署编译器Java编译器项目字节码版本1.8

设置构建、执行、部署编译器Java编译器目标字节码版本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>

任何建议将不胜感激!

共有1个答案

郑衡
2023-03-14

我使用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>

添加以下init参数:


 ·  compilersourceVM
 ·  1.8

 ·  compilertargetVM
 ·  1.8

完成。

 类似资料:
  • 我在这里发现了以下文章:JSP文件中的Lambda表达式将无法编译 因此,我在Tomcat的conf/web.xml中添加了compilerSourceVM和compilerTargetVM。(不在web.xml项目中)。 有什么提示吗? 提前谢了。 编辑: b.)out变量必须是final。因此需要 c.)您可能必须将JSP API库导入到我们的项目中。Gradle示例:

  • 本文向大家介绍如何编写JSP表达式?,包括了如何编写JSP表达式?的使用技巧和注意事项,需要的朋友参考一下 JSP表达式元素包含一种脚本语言表达式,该脚本语言表达式经过评估,转换为String,并插入该表达式出现在JSP文件中的位置。 由于表达式的值已转换为字符串,因此可以在JSP文件的一行文本中使用表达式,无论是否用HTML标记。 expression元素可以包含根据Java语言规范有效的任何表

  • JSP 表达式可以把变量或者表达式输出到网页上,不需要 out.print() 就能输出数据。通常用于打印变量和方法的值。 JSP 表达式语法如下: <%= 表达式 %> 等效于 可以将 <%=表达式 %> 理解为 <% out.println(表达式) %> 的简写方式。这里需要注意,JSP 表达式不能以分号结尾。 例 1 使用 JSP 表达式显示欢迎消息,代码如下: 浏览器输出信息为: 欢迎来

  • (译注:目前支持lambda的gcc编译器版本为4.5,其它详细的编译器对于C++11新特性的支持请参考http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport) Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数(译注:Lambda表达式也可以称为匿名函数,具有复杂行为的函数可以采用命名函数对象,当然,何谓复杂

  • Lambda表达式在Java 8中引入,并被吹捧为Java 8的最大特性.Lambda表达式有助于函数式编程,并简化了很多开发。 语法 (Syntax) lambda表达式的特征在于以下语法。 parameter -> expression body 以下是lambda表达式的重要特征。 Optional type declaration - 无需声明参数类型。 编译器可以从参数的值推断出相同的

  • 无效条目:(仅为数字) 谢谢,巴拉吉