SpringBoot + Jackson + Jquery - Data perde um dia quando envia para o servidor

0 respostas
jqueryjavascriptjavaspring
Jubarius

Bom dia!

Estou desenvolvendo um sistema me utilizando do spring boot + jackson (para o JSON) e o problema que estou enfrentando é que o toda vez que manda uma data, sai do front end corretamente e quando chega no server perde um dia.
Por exemplo: insiro o dia 31/01/2003, quando chega no servidor a data vira 30/01/2003.
Eu envio a data assim:

//Método que formata  a data enviar para o servidor
function formatDate(dateValue){
	return $.datepicker.formatDate('dd/mm/yy', dateValue);
}

function salvarFuncionario(){
	console.log("Aki um antes de salvar!");
	var data = {
		nome : $("#funcionario_nome").val(),
		codigo : $("#codigo_aux").val(),
		rg : $("#funcionario_rg").val(),
		rgUF : $("#funcionario_rguf").val(),
		rgEmissor : $("#funcionario_rgemissor").val(),
		//rgDataEmissao : $("#funcionario_rgdataemissao").val(),
		rgDataEmissao : formatDate($("#funcionario_rgdataemissao").datepicker('getDate')),
		cpf : $("#funcionario_cpf").val(),
		dataNascimento : formatDate($("#funcionario_datanascimento").datepicker('getDate')),
		sexo : $("#funcionario_sexo").val(),
		estadoCivil : $("#funcionario_estadocivil").val(),
		conjuge : $("#funcionario_conjuge").val(),
		cidadeNasc : $("#funcionario_cidadenasc").val(),
		ufNascimento : $("#funcionario_ufnascimento").val(),
		paisNasc : $("#funcionario_paisnasc").val(),
		mae : $("#funcionario_mae").val(),
		pai : $("#funcionario_pai").val(),
		rua : $("#funcionario_rua").val(),
		numRua : $("#funcionario_numrua").val(),
		bairro : $("#funcionario_bairro").val(),
		cidadeRes : $("#funcionario_cidaderes").val(),
		ufRes : $("#funcionario_ufres").val()
	};

	console.log("Antes do DATA");
	console.log(data);

	// DO POST
	$.ajax({
		type : "POST",
		contentType : "application/json",
		url : "funcionarioSaveJson",
		data : JSON.stringify(data),
		dataType : 'json',
		success : function(result) {
			if(result.status == "Done"){
				$("#msg").html("<p style='background-color:#7FA7B0; color:white; padding:20px 20px 20px 20px'>" +
											"Post Successfully! <br>" +
											"---> Customer's Info: FirstName = " +
											result.data.firstname + " ,LastName = " + result.data.lastname + "</p>");
			}else{
				$("#msg").html("<strong>Error</strong><br>" +
				result + "<br>" + data);

			}
			console.log(data);
			console.log(result);
			$("#msg").dialog("open");
		},
		error : function(e) {
			$("#msg").text("<strong>Error in error</strong><br>" + e);
			$("#div-funcionario-msg").dialog("open");
			console.log("ERROR: ", e);
		}
	});

	/** $("#frm-funcionario-add").submit();
	$("#div-funcionario-add").dialog("close"); **/
}

E recebo no servidor assim:

@RequestMapping(value=path+ "SaveJson", method=RequestMethod.POST)
	public @ResponseBody Funcionario saveJson(@RequestBody @Valid Funcionario funcionario) {
		funcionario = repository.save(funcionario);
		return funcionario;
	}

Ouvi dizer que deveria mudar a declaração dos atributos no servidor, então fiz isso (sem efeito nenhum):

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy", timezone="GMT")
	@Column(name="rg_data_emi")
	@Temporal(TemporalType.DATE)
	private Date rgDataEmissao;

Grato por qualquer ajuda que possam me dar!

Criado 20 de maio de 2018
Respostas 0
Participantes 1