Método getParameter retornando valor inesperado

Estou submetendo um formulário via ajax para um servlet, porém ao fazer um request.getParameter() o valor não é encontrado e o log do servidor retorna valor estranho

function addPer(nom,foi,dta){ //função jQuery
 var persona = {
                url: "CarregaPresidentes",
                acao: "addPer",
                nome: nom,
                foip: foi,
                dta: dta
            };
            $(document).ready(function () {
                $.ajax({
                    type: "post",
                    url: persona.url,
                    data: persona,
                    success: function (resposta) {
                        
                    }
                });
            });
}

case "addPer":   //função Java
                    String nomeadd = request.getParameter("nome");
                    String dataadd = request.getParameter("dta");
                    String foipadd = request.getParameter("foip");
                    System.out.println(dataadd);
                    System.out.println(foipadd);
                    System.out.println(nomeadd);
                    url = "";
                    break;
 addPer //log do servidor imprimindo a ação que é addPer
[modelos.Presidente@f6e2c6, modelos.Presidente@36e0d3ca, modelos.Presidente@4381f835, modelos.Presidente@28ddc9ac] //aqui deveria retornar valores corretos

Alguém sabe o que pode ser??

Olá @Bruno_Ienne1!

Acredito que os dados (“persona”) estão sendo trafegados como texto, e o backend não está recuperando corretamente, pois não encontra “correspondência com o objeto JSON esperado”.

Tenta colocar atributo “datatype” no “$.ajax…” como dataType:“json”:

$.ajax({
type: “post”,
datatype: “json”,
url: persona.url,
data: persona,
success: function (resposta) {
}
});

Ou então colocar o seu objeto “persona” na chamada Ajax assim:

......, data: $.param({ url: "CarregaPresidentes", acao: "addPer", nome: nom, foip: foi, dta: dta }),.....

Ou desta maneira:

......,contentType: "application/json", data: JSON.stringify({ url: "CarregaPresidentes", acao: "addPer", nome: nom, foip: foi, dta: dta })......

Dá uma olhada neste link do StackOverflow: request.getParameter() returns null when using $.ajax with JSON object as data

Lá tiveram o mesmo problema que você, e colocaram diversas formas de resolver.

Poste aí os resultados!

Não me parece que a resposta tenha nada a ver com o “problema”.

O que estás a ver no print é o toString de um array de objectos “modelos.Presidente”. Em qualquer lado do teu código estás a “converter” um array de objectos numa String e obtens isso.