bom dia a todos…
- nos exemplos da apostila há listagem de usuarios, onde é listada pelo id do usuario pelo metodo listaTudo()…tentei fazer uma pesquisa onde o usuario insere dados no formulario pra pesquisa…neste caso estou usando outra entidade …documento…onde a pesquisa é feita atraves de dataInicio e dataFinal…mas a entidade tem apenas a dataDoc…lendo os forum vi que é colocado @Out e @Parameter nos atributos dataInicial e dataFinal…blz ate ai…mas to confuso na montagem do metodo de pesquisa e no fomulario pra pesquisa…
valeu…
e aii…blz…vamos por partes:::
**fiz uma classe chamada DocumentoDao que contem um metodo especifico para a classe, ela faz um select no banco atraves da entrada de dois parametros do formulário, no caso, dataInicial e dataFinal:
package br.com.ricardo.lojavirtual.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import br.com.ricardo.lojavirtual.modelo.Documento;
public class DocumentoDao extends Dao<Documento> {
DocumentoDao (Session session) {
super(session, Documento.class);
}
//pesquisa documentos por data do dia que carrega no load......
public List<Documento> pesquisandoDatas (Documento d, String dataInicial, String dataFinal ) {
String hql = "select d from Documento as d where d.data_ent between :dataInicial and :dataFinal";
Query query = getSession().createQuery(hql);
//query.setParameter("id", d.getId());
query.setParameter("dataInicial", dataInicial);
query.setParameter("dataFinal", dataFinal);
return query.list();
}
}
e a classe DocumentoLogic, onde contem os metodos respectivos…nota q fiz o metodo listaData() que recebe o metodo pesquisandoDatas()…
nota que anotei dois atributos como @Out e @Parameter…eles que vao receber as duas datas informado no formulario…
package br.com.ricardo.lojavirtual.logic;
import java.util.Date;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.annotations.Parameter;
import br.com.ricardo.lojavirtual.dao.DaoFactory;
import br.com.ricardo.lojavirtual.dao.DocumentoDao;
import br.com.ricardo.lojavirtual.modelo.Documento;
@Component("documento")
@InterceptedBy(DaoInterceptor.class)
public class DocumentoLogic {
private final DaoFactory daoFactory;
private Documento doc;
private List<Documento> docs;
private List<Documento> docDatas;
@Out
@Parameter
private Date dataInicial;
@Out
@Parameter
private Date dataFinal;
public DocumentoLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
//formulario para adicao
public void formulario(){
}
public void pesquisa(){
}
//formulario para edicao
public void editar(Documento doc) {
//carrega os dados no banco para edicao
this.doc = this.daoFactory.getDocumentoDao().procura(doc.getId());
}
// Adiciona um doc novo ou atualiza se for edicao
public void armazena(Documento doc) {
this.daoFactory.beginTransaction();
this.daoFactory.getDocumentoDao().atualiza(doc);
this.daoFactory.commit();
}
//remove um doc
public void remove(Documento doc) {
this.daoFactory.beginTransaction();
this.daoFactory.getDocumentoDao().remove(doc);
this.daoFactory.commit();
}
//lista todos os docs
public void lista() {
this.docs = this.daoFactory.getDocumentoDao().listaTudo();
}
//getter pro doc
public Documento getDoc() {
return doc;
}
//getter pra lista de docs
public List<Documento> getDocs() {
return docs;
}
//obtensao da listagem por data...
public void listaData(Documento d, String dataInicial, String dataFinal){
DocumentoDao dao = this.daoFactory.getDocumentoDao();
this.docDatas = dao.pesquisandoDatas(d, dataInicial, dataFinal);
}
//retorna a lista....
public List<Documento> getDocDatas() {
return docDatas;
}
}
abaixo os dois formularios…primeiro o que faz a pesquisa…chamado de pesquisa.ok.logic
<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title></title>
<link rel="stylesheet" type="text/css" href="css/displaytag.css"/>
</head>
<body>
<%@ include file="../menu.jsp" %>
<br>
<ul><li><h2>Pesquisa por data:</h2></li></ul>
<form action="documento.listaData.logic"><ul>Data Inicial: <input name="dataInicial" type="text"></ul>
<ul>Data Final: <input name="dataFinal" type="text" ></ul>
<br>
<input type="submit">
</form>
<br>
<br>
<br>
</body>
</html>
outro formulario…que reorna a listagem da pesquisa:
<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title></title>
<link rel="stylesheet" type="text/css" href="css/displaytag.css"/>
</head>
<body>
<%@ include file="../menu.jsp" %>
<h1><center>Documentos</center></h1>
<display:table id="documento" name="${docDatas}" requestURI="documento.listaData.logic">
<display:column property="id" sortable="true" />
<display:column property="cod_docto" sortable="true" />
<display:column property="ano_docto" sortable="true" />
<display:column property="data_ent" sortable="true" />
<display:column property="origem" sortable="true" />
<display:column property="destino" sortable="true" />
<display:column property="num_docto" sortable="true" />
<display:column property="data_docto" sortable="true" />
<display:column property="tipo_docto" sortable="true" />
<display:column property="assunto" sortable="true" />
<display:column property="follow_up" sortable="true" />
<display:column property="situacao" sortable="true" />
<display:column property="despacho" sortable="true" />
<display:column>
<a href="documento.editar.logic?documento.id=${documento.id}">editar</a>
</display:column>
<display:column>
<a href="documento.remove.logic?documento.id=${documento.id}">remover</a>
</display:column>
</display:table>
</body>
</html>
**to com duvida pq tava acostumado trabalhar com jdbc e sou novo em hibernate e toda esta configuração do hiber e do vraptor deixa no momento meio confusooo…
valeu