GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JSP + Ajax eServlet

jsp
ajax
servlet
Tags: #<Tag:0x00007f653a63c710> #<Tag:0x00007f653a63c5a8> #<Tag:0x00007f653a63c468>
#1

Boa tarde Galera!
Estou com um pequeno problema…
Estou enviando um parâmetro da minha JSP por Ajax para o meu Servlet.
O servlet chama um métodos e gera uma lista a partir desse parâmetro enviado.
Agora preciso enviar essa lista para minha jsp, e não estou conseguindo.

0 Likes

#2

Está enviando essa lista através do que? Sessão? Request?

0 Likes

#3

Request.
Atualizando a pagina eu consigo enviar…
Meu código anterior está assim:

                    String usLog = request.getParameter("param");
                    //System.out.println("param: " + usLog);

                    ExibirComboDao c = new ExibirComboJdbc();
                    List<ExibirComboBean> combo = c.listaCombo(usLog);
                    
                    request.setAttribute("cad", combo);
                                            
                    view = request.getRequestDispatcher("cadastro.jsp");
                    view.forward(request, response);
0 Likes

#4

Se está fazendo desta maneira, não deveria ter problemas.
Na jsp, basta:

 <% List<ExibirComboBean> combo = (List<ExibirComboBean>) request.getAttribute("cad"); %>

Deveria funcionar.

0 Likes

#5

Dessa maneira funciona.
Eu não quero atualizar a pagina.
Estou no meio do formulário, quando eu informo a matricula do usuário, necessito que o sistema busque as informações referente a esse usuario e não apague o que já foi informado do formulario

0 Likes

#6

Entendi.
A questão é que você está usando ajax e, portanto, ou você devolve um objeto do tipo json (pode ser um texto com formato json) ou você devolve um conteúdo onde esse json é apresentado.
Se insistir em usar o forward ou o redirect, não vai rolar mesmo.
Dá uma olhada nesse exemplo e vê se te ajuda.

0 Likes

#7

Vou dar uma olhada…
Obrigado.

0 Likes

#8

Boa tarde darlan_machado, dei uma olhada e consegui levar para a jsp, o problema é que utilizando o response.setContentType(“application/json”); ele leva para a JSP demonstrando apenas o objeto:
[object Object],[object Object],[object Object] e se eu colocar response.setContentType(“application/text”); ele leva assim:
[{“mat”:“002098”,“nome”:"ADENILSON PEREIRA FONSECA ",“cc”:"510021 "},{“mat”:“001531”,“nome”:"SANDRO DE LIMA BARRETO ",“cc”:"510021 "},{“mat”:“001178”,“nome”:"ELIZANDRO DA SILVA BARBOSA ",“cc”:"510021 "}}
Como posso exibir em uma lista exibindo apenas os valores?

0 Likes

#9

Então seta conforme precisar, oras.

0 Likes

#10

Como?
Não sei como trabalhar os retorno do Json na JSP.

0 Likes

#11

Em que ponto ele faz isso e como você está tratando no javascrtipt/ajax?

0 Likes

#12

Não estou tratando…

    $(document).ready(function() {
    $('#ajax').blur(function(event) {
            var name = $('#ajax').val();
            $.post('ajaxGetUserServletResponse', {
                    param : name
            }, function(responseText) {
                    $('#ajaxGetUserServletResponse').text(responseText);
                    
            });
    });

});
acima o meu script que envia por ajax para o servlet, o retorno está assim:

$(’#ajaxGetUserServletResponse’).text(responseText);

Não sei como tratar.

0 Likes

#13

Trate esse retorno. Senão, vai ter esse problema, com certeza.

0 Likes

#14

Como eu trato?
Não entendi essa parte.

0 Likes

#15

Primeiro: se você recebe como texto, precisa converter para objeto javascript:

var retorno = JSON.parse(responseText);

Isso deve transformar a variável retorno em um array semelhante ao que você tem no retorno em que seta como “application/text”:

Aí, você precisa manipular estes dados para conseguir inserir na página:

$.each(retorno, function(i, data){
    $('#idDoComponenteEmQueVaiInserir').append('<p>Matrícula: ' + data.mat + '<br/>Nome: ' + data.nome + '</p>);
});

Faz tempo que não mexo com jQuery, mas deve ser isso.

0 Likes

#16

Obrigado.

0 Likes