0

我有一个简单的 xhtml 页面:

<h:form>
    <p:dataTable var="customer" value="#{customersTableBackingBean.allCustomers}">
        <p:column headerText="First Name">
            <h:outputText value="#{customer.contactFirstName}" />
        </p:column>

        <p:column headerText="City">
            <h:outputText value="#{customer.city}" />
        </p:column>

    </p:dataTable>
</h:form>

当我的 CustomersTableBackingBean.java 如下:

@ManagedBean
@RequestScoped
public class CustomersTableBackingBean {

    @EJB(name = "#{customersService}")
    CustomersService customersService;

    public List<Customers> getAllCustomers(){
        return customersService.getAllCustomers();
    }

    public String sayHello(){
        return "Hello from a managed bean!";
    }

}

我看到一些从数据库中提取的数据,如预期的那样在 index.xhtml 上。

但是,当我将@ManagedBean注释更改为@Named并导入:javax.inject.Named时 index.xhtml 中没有数据。

这个结构有什么问题?

如何使用 CDI bean 而不是 JSF ManagedBean?

(我有一个空的 beans.xml 文件。)

4

1 回答 1

0

我将回答我自己的问题:

beans.xml 进入 web-inf 文件夹而不是 meta-inf !

于 2013-05-26T21:29:16.943 回答