Recebimento de Parametros Via Ajax com VRaptor

5 respostas
M

Olá Pessoal,

Estou utilizando em minha aplicação flexigrid + VRaptor 3. Já estou conseguindo retornar os dados via json e popular a grid via ajax (post), mas estou com uma duvida que é a seguinte:

Quero receber os parâmetros enviados da flexigrid que são page e rp para poder paginar e classificar os dados.

Estou utilizando a seguinte path em meu controller

@Post
@Path("/vendas/consulta/{id}/{page}/{rp}")
public void consulta(Long id, Integer page, Integer rp) {
      ---
}

O parâmetro que representa o id eu estou passando diretamente em minha url, mas os parâmetros adicionais são enviados através da flexigrid via ajax, neste caso como deveria ficar minha path?

O js esta com a configuração padrão

$("#flex1").flexigrid(     
        {
            url: 'http://localhost:8084/aplicacao/vendas/consulta/1',
            dataType: 'json',
            colModel : [
                    {display: 'ID', name: 'id', width: 40, sortable: true, align: 'center', hide: true},
                    {display: 'Mes', name: 'mes', width : 80, sortable: true, align: 'left'},
                    {display: 'Quantidade', name: 'quantidade', width: 100, sortable : true, align: 'center'},
                    {display: 'Valor', name: 'valor', width: 100, sortable : true, align: 'center'},
                    ],
            buttons : [
                    {separator: true},
                    {name: 'Adicionar', bclass: 'add', onpress : test},
                    {separator: true},
                    {name: 'Deletar', bclass: 'delete', onpress : test},
                    {separator: true}
                    ],
            searchitems : [
                    {display: 'Mes', name : 'mes', isdefault: true},
                    {display: 'Quantidade', name : 'quantidade'},
                    {display: 'Valor', name : 'valor'},
                    ],
            rpOptions: [5,10,15,20,15,30],
            sortname: "mes",
            sortorder: "asc",
            usepager: true,
            title: 'Resumo',
            useRp: true,
            rp: 5,
            showTableToggleBtn: false,
            width: 560,
            height: 200
        }
    );

Conforme documentação, os parâmetros passados pelo flexigrid são: page, rp, sortname e sortorder

5 Respostas

Lucas_Cavalcanti

o flexgrid não passa os parâmetros pela url, ele passa por query string provavelmente via GET

então vc deveria mudar o método para:

@Get
@Path("/vendas/consulta/{id}")  
public void consulta(Long id, Integer page, Integer rp) {  
      ---  
}

troque o @Get por @Post se o flexgrid fizer a request vai post.

tip: no VRaptor 3.3.x vc pode usar @Get("/vendas/consulta/{id}"), sem precisar do @Path

M

Lucas, deu certo… Valeu!!!

luisbizzan

Boa tarde Lucas, estou iniciando no uso do flexigrid e estou apanhando muito, fiz um projeto teste e não quero utilizar o VRaptor, então oque foi feito, foi montado um Servlet que faz um out.print do meu JSon que eu envio pra grid. O preenximento da grid está ok! Eu só não sei como faço para receber os dados da grid para executar um filtro? Tem ideia como faria isso ?

Lucas_Cavalcanti

isso é uma dúvida geral, luis, vc pode postar no forum de desenvolvimento web.

vc recebe os dados do mesmo jeito que em qqer ambiente em servlets, via request.getParameter…

se isso não resolver a sua dúvida, abra outro tópico, ou procure por um tópico que fale sobre isso, por favor

luisbizzan

Boa tarde Lucas bom como vc havia me falado, oque estou procurando é um pouco diferente doque discutido neste post, estão eu inseri um novo, e acho q detalhei bem para vc entender melhor, será que pode me ajudar abraço.

http://www.guj.com.br/java/237807-flexigrid–json

Criado 4 de março de 2011
Ultima resposta 1 de abr. de 2011
Respostas 5
Participantes 3