我正在尝试建立一个简单的JSF项目。
我创建了一个新的Dynamic Web Project并调整了其构面:
之后,我添加了MessageServerBean类:
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@SessionScoped
@ManagedBean
public class MessageServerBean implements Serializable {
private static final long serialVersionUID = 1L;
public String getMessage() {
return "Hello World!";
}
}
还有一个XHTML文件:
<h:body>
Hello from Facelets
<br />
Message is: #{messageServerBean.message}
<br />
Message Server Bean is: #{messageServerBean}
</h:body>
当我执行它时,一切都会按预期进行:
Hello from Facelets
Message is: Hello World!
Message Server Bean is: bean.MessageServerBean@30ecf01b:
但是从JSF Bean更改为CDI Bean之后:
import java.io.Serializable;
import javax.enterprise.context.SessionScoped; // changed
import javax.inject.Named; // changed
@SessionScoped
@Named // changed
public class MessageServerBean implements Serializable {
private static final long serialVersionUID = 1L;
public String getMessage() {
return "Hello World!";
}
}
不再加载Bean中的内容:
Hello from Facelets
Message is:
Message Server Bean is:
在beans.xml
中,Bean-Discovery-Mode
设置为all
。