我是Java EE 7中的新手,我使用DAO模式开发Java EE7应用程序(JPA,EJB,JSF-Primefaces)
我有一个带有2个标签的p:tabView,如下图所示。
我希望在p:DataTable中显示搜索结果(当用户按下搜索按钮时),两者都在相同的页面中。
我尝试了,但是使用p:ajax
我有各种错误 你能帮帮我吗?答案 0 :(得分:0)
我正在练习这个练习,在我的代码下面: 我的观点XHTML
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<h:outputStylesheet library="css" name="style.css" />
<title>Creditos</title>
</h:head>
<body>
<ui:composition template="./../views/template.xhtml">
<ui:define name="content">
<h:form>
<p:panelGrid columns="2">
<p:outputLabel value="Fecha Inicio:"/>
<p:calendar navigator="true" value="#{creditoBean.fecha1}"/>
<p:outputLabel value="Fecha Fin:"/>
<p:calendar navigator="true" value="#{creditoBean.fecha2}"/>
<p:commandButton value="Cargar" actionListener="#{creditoBean.filtrarFechas()}"
update=":formMostrar"/>
</p:panelGrid>
<p:panelGrid columns="2">
<p:outputLabel value="Ingrese DNI o RUC:"/>
<p:inputMask mask="9?9999999999" maxlength="11" value="#{creditoBean.dni}"/>
<p:commandButton value="Buscar" actionListener="#{creditoBean.cargarAnexoDNI()}"
ajax="false"/>
</p:panelGrid>
</h:form>
<h:form id="formMostrar">
<p:dataTable var="cred" value="#{creditoBean.filtradafecha}"
emptyMessage="No hay nada para mostrar"
paginator="true" rows="20" paginatorPosition="top"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="20">
<p:column headerText="Cod.">
<h:outputText value="#{cred.liqventa}" />
</p:column>
<p:column headerText="Nombres">
<h:outputText value="#{cred.anexoByIdanexo.nombres}" />
</p:column>
<p:column headerText="Tienda" filterBy="#{cred.tienda}" filterMatchMode="contains">
<h:outputText value="#{cred.tienda}">
<f:converter converterId="tiendaconverter"/>
</h:outputText>
</p:column>
<p:column headerText="Empresa" filterBy="#{cred.empresa}" filterMatchMode="contains">
<h:outputText value="#{cred.empresa}">
<f:converter converterId="empresaconverter"/>
</h:outputText>
</p:column>
<p:column headerText="Vehículo">
<h:outputText value="#{cred.vehiculo.tipovehiculo}">
<f:converter converterId="tvehiculo"/>
</h:outputText>
</p:column>
<p:column headerText="Deuda">
<h:outputText value="#{cred.totaldeuda}" />
</p:column>
<p:column headerText="Cargar">
<p:commandButton value="C" /*Here charge the table */ update=":formModificar"
actionListener="#{creditoBean.cargarLetras()}" onclick="$('#tablaletras').show();"/>
</p:column>
<p:column headerText=" ">
<p:commandButton icon="b-delete" oncomplete="dlgeliminar.show()" update=":formEliminar">
<f:setPropertyActionListener target="#{creditoBean.credito}" value="#{cred}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<div id="tablaletras" class="campo">
<h:form id="formModificar">
<p:dataTable var="letras" value="#{creditoBean.letraslista}"
emptyMessage="No hay nada para mostrar">
<p:inputText type="hidden" value="#{letras.idletras}"/>
<p:column headerText="Cod venta.">
<h:outputText value="#{letras.credito.liqventa}" />
</p:column>
<p:column headerText="Descripcion">
<h:outputText value="#{letras.descripcion}"/>
</p:column>
<p:column headerText="Monto">
<h:outputText value="#{letras.montoletra}"/>
</p:column>
<p:column headerText="Interes">
<h:outputText value="#{letras.interes}"/>
</p:column>
<p:column headerText="Total Letra">
<h:outputText value="#{letras.monto}"/>
</p:column>
<p:column headerText="Fecha In.">
<h:outputText value="#{letras.fecini}">
<f:convertDateTime/>
</h:outputText>
</p:column>
<p:column headerText="Fecha Ven.">
<h:outputText value="#{letras.fecven}">
<f:convertDateTime/>
</h:outputText>
</p:column>
<p:column headerText="Saldo">
<h:outputText value="#{letras.saldo}"/>
</p:column>
<p:column headerText="Estado">
<h:outputText value="#{letras.estado}">
<f:converter converterId="letrasconverter"/>
</h:outputText>
</p:column>
<p:column headerText="Pagar">
<p:commandButton oncomplete="dlgpagar.show()" value="P" update=":formPagar"
actionListener="#{pagosBean.cargarLetra(letras)}"/>
</p:column>
</p:dataTable>
<p:commandButton value="Nota de Débito" icon="b-add" update=":formPagar"
oncomplete="dlgnotadebito.show()" />
</h:form>
</div>
<p:dialog id="dlg1" header="Ingrese los datos" showEffect="explode" hideEffect="explode"
widgetVar="dlgpagar" modal="true" resizable="false" minWidth="200">
<h:form id="formPagar">
<p:panelGrid columns="4">
<p:outputLabel value="Fecha:"/>
<p:calendar navigator="true" value="#{pagosBean.pago.fecreg}"/>
<p:outputLabel value="Tipo:"/>
<p:selectOneMenu value="#{pagosBean.pago.tipo}">
<f:selectItem itemLabel="Letra" itemValue="LE" />
<f:selectItem itemLabel="Nota de Credito" itemValue="NC" />
</p:selectOneMenu>
<p:outputLabel value="Referencia:"/>
<p:inputText value="#{pagosBean.pago.operacion}"/>
<p:outputLabel value="Monto:"/>
<p:inputText value="#{pagosBean.pago.monto}"/>
<p:outputLabel value="Descripción:"/>
<p:inputText value="#{pagosBean.pago.descripcion}"/>
<p:commandButton actionListener="#{pagosBean.insertar()}" value="Pagar" oncomplete="dlgpagar.hide()"
update=":formModificar"/>
</p:panelGrid>
</h:form>
</p:dialog>
<p:dialog id="dlg3" header="Ingrese los datos" showEffect="explode" hideEffect="explode"
widgetVar="dlgnotadebito" modal="true" resizable="false" minWidth="200">
<h:form id="formNotadebito">
<p:panelGrid columns="4">
<p:outputLabel value="Fecha Inicio:"/>
<p:calendar navigator="true" value="#{creditoBean.letra.fecini}"/>
<p:outputLabel value="Fecha Venc:"/>
<p:calendar navigator="true" value="#{creditoBean.letra.fecven}"/>
<p:outputLabel value="Monto:"/>
<p:inputText value="#{creditoBean.letra.monto}"/>
<p:commandButton actionListener="#{creditoBean.insertarNotaDebito()}" value="Guardar" oncomplete="dlgnotadebito.hide()"
update=":formModificar"/>
</p:panelGrid>
</h:form>
</p:dialog>
<p:dialog id="dlg2" header="Eliminar Credito" showEffect="explode" hideEffect="explode"
widgetVar="dlgeliminar" modal="true" resizable="false" minWidth="200">
<h:form id="formEliminar">
<h:outputText value="¿Desea eliminar?" />
<p:commandButton value="Si" actionListener="#{creditoBean.eliminar()}"
ajax="false" oncomplete="dlgeliminar.hide();" />
<p:commandButton value="No" onclick="dlg2.hide();" />
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
</body>
我的CreditoBean:
@ManagedBean
@SessionScoped
public class creditoBean implements Serializable {
public Credito credito = new Credito();
public List<Credito> creditos;
LetrasDao letrasdao = new LetrasDaoImplements();
public List<Letras> letrasventa;
public List<Credito> filtradafecha;
private Date fecha1 = new Date();
private Date fecha2 = new Date();
private List<Letras> letraslista = new ArrayList();
private Pagos pago = new Pagos();
private Letras letra = new Letras();
private String dni;
private BigDecimal res;
/*Constructor and getters and setters*/
public void eliminar() {
CreditoDao creditodao = new CreditoDaoImp();
LetrasDao letrasdao = new LetrasDaoImplements();
List<Letras> letrita = new ArrayList();
letrita = letrasdao.mostrarLetrasXCred(credito);
BigDecimal totaldeuda = new BigDecimal(BigInteger.ZERO);
for (int i = 0; i < letrita.size(); i++) {
Letras get = letrita.get(i);
totaldeuda = totaldeuda.add(get.getMonto());
}
if (totaldeuda.compareTo(credito.getTotaldeuda()) == 0) {
creditodao.eliminarVenta(credito);
} else {
System.out.println("Mostrar Error de que el credito ya ha sido cobrado y no se puede borrar");
}
credito = new Credito();
}
public Date sumaDias(Date fecha, int dias) {
Calendar cal = Calendar.getInstance();
cal.setTime(fecha);
cal.add(Calendar.DAY_OF_YEAR, dias);
return cal.getTime();
}
public void filtrarFechas() {
CreditoDao linkdao = new CreditoDaoImp();
filtradafecha = linkdao.filtrarFechas(fecha1, fecha2);
}
public void cargarCredito(Anexo anexo) {
letraslista = new ArrayList();
CreditoDao creditodao = new CreditoDaoImp();
List<Letras> letritas = new ArrayList();
Calendar calendario = GregorianCalendar.getInstance();
Date fecha = calendario.getTime();
credito = creditodao.cargarCreditoxAnexo(anexo);
LetrasDao letras = new LetrasDaoImplements();
letritas = letras.mostrarLetrasXCred(credito);
for (int i = 0; i < letritas.size(); i++) {
System.out.println(" Entre al for :" + letritas.get(i));
Letras get = letritas.get(i);
if (get.getSaldo().compareTo(BigDecimal.ZERO) == 0) {
get.setEstado("CN");
System.out.println(" Entre al IF :" + get.getEstado());
} else {
if (get.getSaldo().compareTo(BigDecimal.ZERO) == 1) {
if (get.getFecven().after(fecha)) {
get.setEstado("PN");
} else {
get.setEstado("VN");
}
}
}
letrasdao.modificarLetra(get);
}
letraslista = letras.mostrarLetrasXCred(credito);
}
public void cargarLetras(/*Anexo anexo*/) {
letraslista = new ArrayList();
CreditoDao creditodao = new CreditoDaoImp();
List<Letras> letritas = new ArrayList();
Calendar calendario = GregorianCalendar.getInstance();
Date fecha = calendario.getTime();
LetrasDao letras = new LetrasDaoImplements();
letritas = letras.mostrarLetrasXCred(credito);
for (int i = 0; i < letritas.size(); i++) {
System.out.println(" Entre al for :" + letritas.get(i));
Letras get = letritas.get(i);
if (get.getSaldo().compareTo(BigDecimal.ZERO) == 0) {
get.setEstado("CN");
System.out.println(" Entre al IF :" + get.getEstado());
} else {
if (get.getSaldo().compareTo(BigDecimal.ZERO) == 1) {
if (get.getFecven().after(fecha)) {
get.setEstado("PN");
} else {
get.setEstado("VN");
}
}
}
letrasdao.modificarLetra(get);
}
letraslista = letras.mostrarLetrasXCred(credito);
}
public void insertarPago() {
PagosDao linkDao = new PagosDaoImp();
System.out.println("Este es el Id de letra :" + letra.getIdletras());
linkDao.insertarPago(pago);
pago = new Pagos();
}
public void insertarNotaDebito() {
LetrasDao letrasdao = new LetrasDaoImplements();
Date d = new Date();
letra.setCredito(credito);
letra.setDescripcion("ND");
letra.setFecreg(d);
letra.setMontoletra(BigDecimal.ZERO);
letra.setInteres(BigDecimal.ZERO);
letra.setSaldo(letra.getMonto());
letra.setEstado("PN");
letrasdao.insertarLetra(letra);
}
public void cargarAnexoDNI() {
filtradafecha = new ArrayList();
AnexoDao anexodao = new AnexoDaoImplements();
Anexo anexo = new Anexo();
CreditoDao creditodao = new CreditoDaoImp();
try {
anexo = anexodao.cargarClientexDoc(dni, "CN", "CJ");
credito = creditodao.cargarCreditoxAnexo(anexo);
filtradafecha.add(credito);
} catch (Exception e) {
}
}
最后,我的道:
package Dao;
import Model.Anexo;
import Model.Credito;
import Model.Letras;
import Persistencia.HibernateUtil;
import java.util.Date;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
public class CreditoDaoImp implements CreditoDao{
@Override
public List<Credito> mostrarVentas() {
Session session = null;
List<Credito> lista = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito");
lista = (List<Credito>)query.list();
}catch (HibernateException e){
System.out.println(e.getMessage());
}
finally{
if (session != null){
session.close();
}
}
return lista;
}
@Override
public void insertarVenta(Credito credito) {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(credito);
session.getTransaction().commit();
} catch (HibernateException e){
System.out.println(e.getMessage());
session.getTransaction().rollback();
}
finally {
if(session != null){
session.close();
}
}
}
@Override
public void modificarVenta(Credito credito) {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.update(credito);
session.getTransaction().commit();
} catch (HibernateException e){
System.out.println(e.getMessage());
session.getTransaction().rollback();
}
finally {
if(session != null){
session.close();
}
}
}
@Override
public void eliminarVenta(Credito credito) {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.delete(credito);
session.getTransaction().commit();
} catch (HibernateException e){
System.out.println(e.getMessage());
session.getTransaction().rollback();
}
finally {
if(session != null){
session.close();
}
}
}
@Override
public List<Credito> filtrarFechas(Date date1, Date date2) {
Session session = null;
List<Credito> lista = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito WHERE fechareg BETWEEN :start_date AND :end_date" );
query.setParameter("start_date", date1);
query.setParameter("end_date", date2);
lista = (List<Credito>)query.list();
}catch (HibernateException e){
System.out.println(e.getMessage());
}
finally{
if (session != null){
session.close();
}
}
return lista;
}
@Override
public Credito cargarCreditoxAnexo(Anexo anexo) {
Session session = null;
Credito credito = new Credito();
Integer idanexo;
idanexo = anexo.getIdanexo();
try {
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito WHERE idanexo=:w");
query.setParameter("w", idanexo);
credito = (Credito) query.uniqueResult();
} catch (HibernateException e) {
System.out.println(e.getMessage());
} finally {
if (session != null) {
session.close();
}
}
return credito;
}
@Override
public Credito cargarCreditoxLetra(Letras letra) {
Session session = null;
Credito credito = new Credito();
Integer idcredito;
idcredito = letra.getCredito().getIdventa();
try {
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito WHERE idventa=:w");
query.setParameter("w", idcredito);
credito = (Credito) query.uniqueResult();
} catch (HibernateException e) {
System.out.println(e.getMessage());
} finally {
if (session != null) {
session.close();
}
}
return credito;
}
@Override
public List<Credito> filtrarDni(String dni) {
Session session = null;
List<Credito> lista = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito WHERE " );
query.setParameter("start_date", dni);
lista = (List<Credito>)query.list();
}catch (HibernateException e){
System.out.println(e.getMessage());
}
finally{
if (session != null){
session.close();
}
}
return lista;
}
@Override
public List<Credito> filtrarCreditoxAnexo(Anexo anexo) {
Session session = null;
List<Credito> lista = null;
Integer idanexo;
idanexo = anexo.getIdanexo();
try {
session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("FROM Credito WHERE idanexo=:w");
query.setParameter("w", idanexo);
lista = query.list();
} catch (HibernateException e) {
System.out.println(e.getMessage());
} finally {
if (session != null) {
session.close();
}
}
return lista;
}
}
结果: