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

JSP文件中的Lambda表达式将不会编译(续)

齐飞星
2023-03-14

我在这里发现了以下文章:JSP文件中的Lambda表达式将无法编译

因此,我在Tomcat的conf/web.xml中添加了compilerSourceVM和compilerTargetVM。(不在web.xml项目中)。

    <p>
    Cookies:<br />
    <%
        Cookie[] cookies = request.getCookies();
        if ( cookies == null || cookies.length == 0 ) {
            out.println("No cookies found<br/>");
        } else {
            out.println("Cookies found size=" + cookies.length + "<br/>");
            List<Cookie> cList = Arrays.stream(request.getCookies()).collect(Collectors.toList());
            for ( Cookie c : cList ) {
                out.println("C: " + c + "<br/>");
            }
            out.println("Cookies found size=" + cookies.length + "<br/>");
        }
    %>
</p>
  Arrays.stream(request.getCookies()).forEach(cookie -> {out.println("Cookie information here<br/>");});
    org.apache.jasper.JasperException: Unable to compile class for JSP: 
An error occurred at line: [53] in the jsp file: [/report.jsp]
Unhandled exception type IOException
50:             } else {
51:                 out.println("Cookies found size=" + cookies.length + "<br/>");
52:                 Arrays.stream(request.getCookies()).forEach(cookie -> {
53:                     out.println("Cookie information here<br/>");
54:                 });  

有什么提示吗?

提前谢了。

编辑:

Arrays.stream(request.getCookies()).forEach(cookie -> {System.out.println("Cookie information here<br/>");});

b.)out变量必须是final。因此需要final JspWriter myOut=out;

c.)您可能必须将JSP API库导入到我们的项目中。Gradle示例:providcompile'javax.servlet.JSP:javax.servlet.jsp-api:2.3.0'

共有1个答案

司凡
2023-03-14

是否可以尝试在web.xml中添加以下init参数,

    <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>
 类似资料:
  • 我已经尝试了stackoverflow上提到的大多数建议,但还没有找到解决方案。我遇到的错误如下所示。 我正在使用IntelliJ IDEA 2016.2,并应用了这些设置。 →、到 →、到 →→→,到 →→→,到 我使用的是Tomcat V8.0.36,对于JSP servlet有以下内容。 任何建议将不胜感激!

  • 问题内容: 考虑以下Java 8代码段。 什么是越来越编译? 我知道Lambda并没有实现为匿名内部类。但是,因此接口必须在生成某种对象,但是尚不清楚在生成哪种对象。 Java 8中是否存在某种表示lambda表达式的新型对象? 更新 这是经过反编译的程序,该程序已使用eclipse java 8编译器编译,当您打开类文件时,以下输出来自eclipse。 看起来lambda表达式已变成包含lamb

  • 我正在使用NetBeans 8。当我的代码包含Lambda表达式并尝试编译时,我会收到以下错误消息:

  • 问题内容: 我有以下代码: 当我通过main方法运行它时,它运行良好,但是当我尝试对其进行编译时,抛出以下错误: 我正在使用Eclipse IDE,并尝试通过命令行进行编译。 问题答案: 默认情况下,使用Java 5来编译类。引用其文档: 还要注意,当前的默认源设置是1.5,默认目标设置是1.5,与运行Maven的JDK无关。如果要更改这些默认值,则应按照设置Java编译器的- source和-t

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

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