[英]How do I run Java 8 lambda in JSP files
這是一個帶有Maven管理的Java JSP項目,在本地運行Jetty。
我在嘗試在.jspf
文件中運行 lambda 時遇到此錯誤的問題: Lambda expressions are allowed only at source level 1.8 or above
。
我的設置:
<maven.compiler.source>1.8</maven.compiler.source>
和<maven.compiler.target>1.8</maven.compiler.target>
jetty-jspc-maven-plugin
插件,我在<configuration>
中將sourceVersion
和targetVersion
設置為 1.8有什么我遺漏的嗎,或者 JSP/jspc 根本不可能使用 Java 8
現有的https://github.com/jetty-project/embedded-jetty-jsp有一個設置compilerSourceVM
和compilerTargetVM
的示例,以允許您的*.jsp
文件使用 Java 8 功能,如 lambda 的。
基本上你配置你的JettyJspServlet
// Create / Register JSP Servlet (must be named "jsp" per spec)
ServletHolder holderJsp = new ServletHolder("jsp", JettyJspServlet.class);
holderJsp.setInitOrder(0);
holderJsp.setInitParameter("logVerbosityLevel", "DEBUG");
holderJsp.setInitParameter("fork", "false");
holderJsp.setInitParameter("xpoweredBy", "false");
holderJsp.setInitParameter("compilerTargetVM", "1.8");
holderJsp.setInitParameter("compilerSourceVM", "1.8");
holderJsp.setInitParameter("keepgenerated", "true");
servletContextHandler.addServlet(holderJsp, "*.jsp");
我繼續添加了一個lambda.jsp ,它在 JSP 中使用一個簡單的 lambda 來證明這一點。 (lambda 與 jsp 的 JspWriter 混合相當復雜,事后看來它不是示例的最佳選擇)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.