【发布时间】:2020-09-01 00:35:46
【问题描述】:
我想将我的 JSF 应用程序从 ManagedBean 迁移到 CDI Bean。
首先,我做了一个简单的测试,看看 CDI 是否正常工作,但它们没有。 这是我的示例,使用 Wildfly 10 和 myfaces 2.2
.\WEB-INF 中的beans.xml
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
xhtml 页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>
test
</title>
</h:head>
<h:body>
<h:outputText value="#{CDITest.hello}"/>
<h:outputText value="test"/>
</h:body>
</html>
支持 Bean
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import java.io.Serializable;
@Named("CDITest")
@SessionScoped
public class CDITest implements Serializable{
public String getHello(){
return "Hello";
}
}
输出
测试
没有错误消息 (!) 并且没有调用 CDITest.getHello() 方法。我错过了什么?
【问题讨论】:
-
在 JSF 开发模式下运行你的应用程序
-
你的意思是 javax.faces.PROJECT_STAGE?这是发展
-
和一个视图源显示?
-
测试
-
顺便说一句,wildfly 10 和 myfaces?不是默认组合...您可以尝试启用他们的默认 JSF 吗?