Jsf @带参数的后构造方法

Jsf @带参数的后构造方法,jsf,datatable,view-scope,Jsf,Datatable,View Scope,我有一个数据库中的订单列表,我想在两个JSF页面中显示两个单独的数据表:一个关于所有订单的表,一个关于当前登录用户的表。 问题是,页面上实际上只显示了第一个 带有datatable链接的JSF页面 <h:commandLink action="#{ordineController.listaOrdini}" value="Consulta gli ordini esistenti" rendered="#{not empty loginAdmin.admin.email}"

我有一个数据库中的订单列表,我想在两个JSF页面中显示两个单独的数据表:一个关于所有订单的表,一个关于当前登录用户的表。 问题是,页面上实际上只显示了第一个

带有datatable链接的JSF页面

<h:commandLink action="#{ordineController.listaOrdini}"
        value="Consulta gli ordini esistenti" rendered="#{not empty loginAdmin.admin.email}"/>
    <div>
        <h:commandLink
            action="#{ordineController.listaOrdiniCliente}"
            value="Controlla i tuoi ordini"
            rendered="#{not empty loginCliente.clienteLoggato.email}">
            <f:setPropertyActionListener target="#{ordineController.clienteCorrente}"
                value="#{loginCliente.clienteLoggato}" />
        </h:commandLink>
</div>
无法工作的JSF页面showordInClient.xhtml

<h:outputText value="Non c'è nessun ordine."
        rendered="#{empty ordineController.ordiniCliente}" />
    <h:dataTable id="lista" value="#{ordineController.ordiniCliente}"
        var="ordine" rendered="#{not empty ordineController.ordiniCliente}">
可以工作的JSF页面showerdini.xhtml

<h:outputText value="Non c'è nessun ordine."
    rendered="#{empty ordineController.ordini}" />
<h:form rendered="#{not empty ordineController.ordini}">
    <h:dataTable id="lista" value="#{ordineController.ordini}"
        var="ordine">
为什么{ordineController.OrdinClient}是空的? 它不应该与@PostConstruct中的ordini变量一起构建吗

编辑 Facade方法它检索客户的所有订单

public List<Ordine> getOrdiniCliente (Cliente cliente) {

    try {
        TypedQuery<Ordine> q = em.createQuery("SELECT ord FROM Ordine ord WHERE ord.cliente = :cliente", Ordine.class);
        q.setParameter("cliente", cliente);
        return q.getResultList();

    } 
    catch (Exception e) {
        String q = "Il cliente " +cliente.getNickname()+ " non ha creato degli ordini";
        System.out.println(q);
        return null;

    }

}

在一个与问题无关的旁注中,请不要呼叫控制器。JSF支持bean不是控制器,而是MVC中的模型。请发布OrdineController的完整代码。您是否在ListaOrdinClient中设置了断点以确认它实际上是从后端获取值?为什么此方法返回ShowOrdinClient?您是否试图导航到别处。@Shahzeb:取决于您的视角和创建bean的方式。另请参见a.o.在OP的案例中,ordini、OrdinClient和oFacade显然是模型。OrdineController没有任何其他方法。顺便说一句,很抱歉延迟了我的回复,我在第一篇文章中添加了facade方法的代码。仍然无法在我的页面中查看列表或客户端@巴卢斯我很想得到你的帮助
public List<Ordine> getOrdiniCliente (Cliente cliente) {

    try {
        TypedQuery<Ordine> q = em.createQuery("SELECT ord FROM Ordine ord WHERE ord.cliente = :cliente", Ordine.class);
        q.setParameter("cliente", cliente);
        return q.getResultList();

    } 
    catch (Exception e) {
        String q = "Il cliente " +cliente.getNickname()+ " non ha creato degli ordini";
        System.out.println(q);
        return null;

    }

}