- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个小项目...
在文件 src/main/java/com/mycompany/mavenproject2/Root.java
中:
package com.mycompany.mavenproject2;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.function.Supplier;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/")
public class Root extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException {
Supplier<String> welcomeMsg = () -> "Hello world! I'm a lambda.";
PrintWriter writer = response.getWriter();
writer.println(welcomeMsg.get());
}
}
在文件 src/main/java/com/mycompany/mavenproject2/HelloBackingBean.java
中:
package com.mycompany.mavenproject2;
import java.util.function.Supplier;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class HelloBackingBean {
public String getMessage() {
if (false) {
Supplier<String> msg = () -> "Hello from a lambda";
return msg.get();
} else {
return "Hello from string literal";
}
}
}
在文件 src/main/webapp/hello.xhtml
中:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:head>
<title>Test Page</title>
</h:head>
<h:body>
<p>#{helloBackingBean.message}</p>
</h:body>
</html>
在pom.xml
中:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenproject2</artifactId>
<version>0.1</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- JSF implementation -->
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.2.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.5.v20141112</version>
<configuration>
<scanIntervalSeconds>1</scanIntervalSeconds>
</configuration>
</plugin>
</plugins>
</build>
</project>
使用 mvn jetty:run
运行站点。我正在使用 Maven 版本 3.2.1。
如果我在 HelloBackingBean
中的 boolean 文字是 true
,当我访问 localhost:8080/faces/hello.xhtml
时什么也没有显示.但是,如果我将其更改为 false
(如上所示),我会按预期看到“Hello from string literal”。
这使我得出结论,不知何故,lambda 的存在导致 MyFaces/JSF 行为异常。 localhost:8080/
进一步证实了这一点,它由 Root
类提供支持,该类使用 lambda 获取其消息并按预期工作。
我的问题是:为什么我的 lambda 用法在这个项目中不起作用?此外,为什么我没有收到某种错误消息?我没有检查正确的地方吗?当我访问 localhost:8080/faces/hello.xhtml
时,我在终端中看不到任何 Activity 。
另外值得注意的是,我假设 javac
将完全省略 if (false)
block 中的代码。如果它不......好吧......那么我就更不知道它是如何工作的或者出了什么问题......
最佳答案
JSF 2.2 与 JDK 6 兼容,而不是 JDK 8。但最近在 MYFACES-3945 中提交了一个补丁。 .它已经提交,将在 MyFaces 2.2.7 发布时可用,这将很快完成。它应该可以解决您的问题。
如果您对 MyFaces 有任何疑问或可能的错误,请发送电子邮件至 MyFaces users mailing list .如果是已确认的错误,请在 MyFaces Core issue tracker 上报告.
关于java - MyFaces @ManagedBean 中的 Lambda 导致丢失/奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27208816/
EDIT: The solution that you can find in comments below assumes changing JSF implemenetation from MyF
我正在用 MyFaces 在 JSF 中做一些开发工作,我收到了这个警告。 **************************************************************
我是 JSF 的初学者。 据我所知,要开始使用 JSF,我必须下载它的一个实现,例如 Apache MyFaces。但是 myfaces-core 中的库是什么?我的意思是,它们各自执行什么功能? 还
主题标题确实说明了一切: 我想在运行时检测 MyFaces 的版本。这可能吗? 似乎有一个 discussion about this kind of feature很久以前,但我找不到任何内容,如果
我正在尝试执行抽象类中的 PostConstruct 注释方法, public abstract class AbstractTest { @PostConstruct
我是 JSF2.0 的初学者。 我正在使用 MyFaces。 我的小教程应用程序没问题,但我在 MyFaces 的日志中注意到以下内容: org.apache.myfaces.util.Externa
两天前,我开始在我的 jsf 应用程序中使用 tomahawk ExtensionsFilter 组件。我注意到所有 javascript 警报都没有显示特殊字符(ç、ã、ó ô),而是显示类似 #2
例如,当我在 @ManagedBean 的构造函数中强制使用 NPE 时然后我在 Eclipse 中看到了一个很好的堆栈跟踪。但是,当 a4j:commandbutton 的操作中出现同样的错误时那么
目前尚不清楚我是否应该使用 MyFaces 或 Mojarra 作为 JSF 2.0 的 PrimeFaces 实现。 PrimeFaces 与其中一个的问题较少吗? 最佳答案 根据 Primefac
我从 JSF2.0 开始,我使用了教程作为引用,但我有以下问题: 本教程仅使用了 2 个库:来自 Mojarra 项目的 jsf-api.jar、jsf-impl.jar(但也有 JSTL)。 我也尝
我正在将应用程序从 websphere 8.5.5.x 环境迁移到 liberty 20.0.0.3。除了 JSF 部分之外,大部分内容我都可以正常工作。初始化出了问题,我不知道它是什么,也不知道如何
将 Mojarra 更改为 MyFaces 后,我的 Web 应用程序出现了一个奇怪的问题...我有一个从外部加载的xhtml文件,也就是说,这个xhtml被重用了很多:
我有一个带有一些表单、xhtml 页面的 JSF 2.0 项目,添加 MyFaces Trinidad 输入日期组件并运行该应用程序后,当我单击“输入日期”图标时,它没有响应并且不执行任何操作?或者我
我有哪些选项可以从我的 JSP 页面读取当前用户的角色?我知道 Tomahawk 组件上的 visibleOnUserRole="myRole" 属性,但我需要角色来处理比简单可见性更复杂的事情。 最
只是一个愚蠢的初学者问题,很快就会解决,但我很好奇。 http://www.irian.at/myfacesexamples/home.jsf说: “MyFaces - 免费 JavaServer™
我需要创建一个具有登录系统的网络应用程序。用户应该针对数据库进行身份验证。我想在 session 中保存用户角色 - 或者还有其他(更好)的方法吗? 此外还有供用户访问的区域。会客区、用户区,管理区域
我目前正在尝试从 JBOSS Weld AS7 切换到 Wildfly 8 Beta。我编译了它,但是当尝试加载页面本身时,出现以下异常: Caused by: java.lang.IllegalSt
在我们的软件中,我们使用 myfaces 1 实现了 2 个过滤器。首先是/jsf,另一个是/1,其映射类在 web.xml 文件中。它适用于 myfaces 1,但是当我们在 Web 应用程序的每个
我正在使用带有 Facelets 和 Tomahawk 的 MyFaces 1.1.7。 创建常规数据表时,例如:
FacesContext.getCurrentInstance().getExternalContext().getFlash() 我正在尝试使用上面的代码,似乎 getFlash() 在 Myfac
我是一名优秀的程序员,十分优秀!