相关疑难解决方法(0)

由于CDI/Weld中的@Named,@ ManagedBeans在JavaEE6中是否已过时?

由于CDI(及其实现Weld),JEE6中的每个POJO都可以注释@Named,这使得POJO可以被视图访问.

这是否意味着ManagedBeans现在已经完全过时了?还是我错过了@ManagedBean仍然有意义的东西?

jsf java-ee jsf-2 jboss-weld

41
推荐指数
4
解决办法
2万
查看次数

将 @SessionScoped CDI bean 注入 JSF @ManagedBean 后实例为 null

我有: - 存储库类:

@SessionScoped
public class EmployeeRepository {
    @PersistenceContext
    EntityManager entityManager;
    public List<Employee> getEmployees(){
        TypedQuery<Employee> qu = entityManager.createQuery("select * from Employee", Employee.class);
        List<Employee> emp2 = qu.getResultList();
        return emp2;
    }
}
Run Code Online (Sandbox Code Playgroud)

托管 Bean:

@ManagedBean(name = "helloWorldBean")
public class HelloWorldBean {
    @Inject
    private EmployeeRepository employeerepo;
    public String getMsg() {
        return "Hallo";
    }
    public String getEmployees() {
        return String.valueOf(employeerepo.getEmployees().size());
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个 JSF 页面:

<h:head>
    <title>JavaCodeGeeks</title>
</h:head>
<h:body>
    - Message : <h:outputText value="#{helloWorldBean.msg}" />
    - Employee count : <h:outputText value="#{helloWorldBean.employees}" />
</h:body> …
Run Code Online (Sandbox Code Playgroud)

jsf inject cdi

1
推荐指数
1
解决办法
933
查看次数

标签 统计

jsf ×2

cdi ×1

inject ×1

java-ee ×1

jboss-weld ×1

jsf-2 ×1