Como enviar parametros para uma lógica VRaptor [RESOLVIDO]

4 respostas
L

Boa tarde amigos, estou implementando um esquema de paginação utilizando o plugin do jquery chamado flexigrid e estou usando-o com VRAptor + Hibernate. Fiquei na dúvida de como passar alguns parâmetros para minha logica VRaptor. Para fazer funcionar direitinho a paginação, preciso passar os parâmetros:

  • page: Indica qual página que está
  • rp: Nro de registros que serão exibidos
  • sortname: nome do campo que será usado na ordenação
  • sortorder: tipo de ordenação: asc ou desc.

Eu tenho mais um problema, pois os registros listados devem ser filtrados para o usuário conectado. Eu implementei o método abaixo dentro do meu DAO genérico abaixo:

DAO.java

public List<T> listaXML(Usuario usuario, int first, int max, String order, String field) {
        Criteria criteria = getSession().createCriteria(this.classe);
        criteria.add(Restrictions.eq("usuario", usuario));
        criteria.setFirstResult(first);
        criteria.setMaxResults(max);
        if ("desc".equals(order))
            criteria.addOrder(Order.desc(field));
        else
            criteria.addOrder(Order.asc(field));
        return criteria.list();
    }

Na classe vraptor que eu vou chamar este método do dao, implementei assim:
ServicoLogic.java

public void listaXML() {        
        //Nao sei o que colocar nos parametros "??"
        this.servicos = this.daoFactory.getServicoDao().listaTudo(this.usuario, ??, ??, ??, ??);
    }

Só que eu preciso passar por parâmetro além do usuário aqueles outro e não sei como fazer…

Alguém pode me ajudar ?

4 Respostas

P

Ta confuso a sua explicação mas pra adiantar é o seguinte, no JSP pra executar um logica do vraptor ou vc cria um form e coloca na action o endereco da logica e todos os campos do form vão ser enviados como parametros ou objeto para o metodo chamado ou então vc cria uma ancora no qual vc monta essa url com os parametros ou objeto que vc precisa na chamada do metodo de logica do vraptor. como ele sabe se é um parametro ou objeto, atraves do atributo name dos <input>, se vc colocar name="listaProduto"´isso é um parametro mas se vc colocar name=“carro.placa” ele vai tentar criar um objeto da classe “Carro” e vai colocar o conteudo desse <input> no atributo “placa”

L

Obrigado pbnf pela atenção… Acho que ficou um pouco confuso mesmo… Funciona assim o flexigrid (plugin do jquery) ele monta um datagrid em tempo execução que permite fazer paginacao, ordenação e muito mais, vale a pena conferir.

Este plugin javascript passa alguns parametros via ajax para alguma logica (vraptor, jsp, php, asp, etc) e quem receber tem que retornar uma lista com os registros no formato XML.

Pra montar o XML eu preciso fazer um limit e um order e para fazer isto preciso do parametro. Sendo assim este paramentro ano é um campo do formulario e sim uma requisicao feita pelo meu javascritp via ajax.

E eu preciso saber como eu faço para pegar os parametros que meu java script vai me passar…

Será que ficou mais claro ?

P

http://www.vraptor.org/pt/request/index.html

L

Olá amigos, o lucascs me deu a solução para este problema… Segue…

Tudo que vc tem que fazer é mandar esses parâmetros via GET ou POST de algum jeito, e na lógica do Vraptor
fazer algo do tipo:

@Logic(parameters={"page", "rp", "sortname", "sortorder"}  
 public void listaXML(Integer page, Integer rp, String sortname, String sortorder) {            
      this.servicos = this.daoFactory.getServicoDao().listaTudo(this.usuario, page*rp, rp, sortname, sortorder);    
 }

isso deve funcionar…
tenta ai =)

Criado 13 de junho de 2008
Ultima resposta 16 de jun. de 2008
Respostas 4
Participantes 2