Jsf @带参数的后构造方法
我有一个数据库中的订单列表,我想在两个JSF页面中显示两个单独的数据表:一个关于所有订单的表,一个关于当前登录用户的表。 问题是,页面上实际上只显示了第一个 带有datatable链接的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}"
<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;
}
}