The request sent by the client was syntactically incorrect

0

I'm developing an application with Spring MVC 4. And I'm getting this error "Status 400 - The request sent by the client was syntactically incorrect". As I researched the internet, I saw that this is because Spring can not make the link between the received types. I've also seen ways to resolve this issue using @InitBinder, Converter or PropertyRegister, but the examples focus a lot on using the java.util.Date type only I'm using java.time.Localdate in my JavaBean. So I would like to know if it is possible to use @InitBinder with LocalDate? Or if the DataBinding is only going to be able to get the input "date" in jsp and turn it into Date? Here is the code:

Register Patient.jsp

<form role="form" action="adicionaPaciente" method="post" id="form1">
						<main class="tab-content">
							<ul class="nav nav-tabs" role="tablist">
								<li><a href="#aba1" role="tab" data-toggle="tab">Dados Pessoais</a></li>
								<li><a href="#aba2" role="tab" data-toggle="tab">Dados Médicos</a></li>
								<li><a href="#aba3" role="tab" data-toggle="tab">Histórico de Procedimentos</a></li>
							</ul>
							<div role="tabpanel" class="tab-pane active" id="aba1">
								<div class="box-header with-border">
									<h3 class="box-title col-md-12">Dados Pessoais</h3>
								</div>
								<!-- /.box-header -->
								<div class="form-row">
									<div class="form-group col-md-6">
									  <label>Nome do Paciente</label>
									  <input type="text" class="form-control" placeholder="Nome" required="true" name="nome_paciente">
									</div>
									<div class="form-group col-md-2">
									  <label>CPF</label>
									  <input type="text" class="form-control" required="true" placeholder="CPF" name="cpf">
									</div>
									<div class="form-group col-md-2">
									  <label>RG</label>
									  <input type="text" class="form-control" required="true" placeholder="RG" name="rg">
									</div>
								</div>
								<div class="form-row">
									<div class="form-group col-md-2">
									  <label>Data de Nascimento</label>
									  <input type="date" class="form-control" required="true" placeholder="Data de Nascimento" name="data_nasc">
									</div>
									<div class="form-group col-md-3">
									  <label>Email</label>
									  <input type="email" class="form-control" placeholder="Email" required="true" name="email">
									</div>
									<div class="form-group col-md-2">
									  <label>Sexo</label>
									  <select class="form-control" name="sexo">
										<option value="masculino">Masculino </option>
										<option value="feminino">Feminino</option>
									  </select>
									</div>
									<div class="form-group col-md-2">
									  <label>Estado Civil</label>
									  <select class="form-control" name="estado_civil">
										<option value="solteiro(a)">Solteiro(a)</option>
										<option value="casado(a)">Casado(a)</option>
										<option value="divorciado(a)">Divorciado(a)</option>
										<option value="viuvo(a)">Viúvo(a)</option>
									  </select>
									</div>
									<div class="form-group col-md-5">
									  <label>Nome do Cônjuge</label>
									  <input type="text" class="form-control" placeholder="Nome do Cônjuge" name="nome_conjuge">
									</div>
								</div>
								<div class="form-row">
									<div class="form-group col-md-4">
									  <label>Endereço</label>
									  <input type="text" class="form-control" required="true" placeholder="Endereço" name="endereco">
									</div>
									<div class="form-group col-md-3">
									  <label>Bairro</label>
									  <input type="text" class="form-control" required="true" placeholder="Bairro" name="bairro">
									</div>
									<div class="form-group col-md-3">
									  <label>Cidade</label>
									  <input type="text" class="form-control" required="true" placeholder="Cidade" name="cidade">
									</div>
									<div class="form-group col-md-2">
									  <label>CEP</label>
									  <input type="text" class="form-control" required="true" placeholder="CEP" name="cep">
									</div>
								</div>
							</div>
							<!-- /.tabpanel 1 -->
							<div role="tabpanel" class="tab-pane" id="aba2">
								<div class="box-header with-border">
									<h3 class="box-title col-md-12">Dados Médicos</h3>
								</div>
								<!-- /.box-header -->
								<div class="form-row">
									<div class="form-group col-md-3">
									  <label>Estado de Saúde</label>
									  <input type="text" class="form-control" required="true" placeholder="Estado de saúde" name="estado_saude">
									</div>
									<div class="form-group col-md-2">
									  <label>Alergias</label>
									  <select class="form-control" name="tem_alergias">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-3">
									  <label>Quais Alergias?</label>
									  <input type="text" class="form-control" placeholder="Alergias" name="alergias">
									</div>
									<div class="form-group col-md-2">
									  <label>Diabetes?</label>
									  <select class="form-control" name="tem_diabetes">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-2">
									  <label>Bebe?</label>
									  <select class="form-control" name="bebe">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
								</div>
								<div class="form-row">
									<div class="form-group col-md-3">
									  <label>Problemas Respiratórios?</label>
									  <select class="form-control" name="tem_prob_resp">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-3">
									  <label>Quais Problemas?</label>
									  <input type="text" class="form-control" placeholder="Problemas" name="prob_resp">
									</div>
									<div class="form-group col-md-2">
									  <label>Cirurgia Prévia?</label>
									  <select class="form-control" name="cirurgia_previa">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-2">
									  <label>Quais Cirurgias?</label>
									  <input type="text" class="form-control" placeholder="Cirurgias" name="cirurgias">
									</div>
									<div class="form-group col-md-2">
									  <label>Fuma?</label>
									  <select class="form-control" name="fuma">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
								</div>
								<div class="form-row">
									<div class="form-group col-md-3">
									  <label>Problemas Circulatórios?</label>
									  <select class="form-control" name="tem_prob_circ">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-3">
									  <label>Quais Problemas?</label>
									  <input type="text" class="form-control" placeholder="Problemas" name="prob_circ">
									</div>
									<div class="form-group col-md-3">
									  <label>Faz uso de algum medicamento?</label>
									  <select class="form-control" name="usa_medicamento">
										<option value="0">Não</option>
										<option value="1">Sim</option>
									  </select>
									</div>
									<div class="form-group col-md-3">
									  <label>Quais Medicamentos?</label>
									  <input type="text" class="form-control" placeholder="Medicamentos" name="medicamentos">
									</div>
								</div>
							</div>
							<!-- /.tabpanel 2 -->
							<nav aria-label="Page navigation">
							  <ul class="pagination">
								<li>
								  <a href="#" aria-label="Previous" id="previous">
									<span aria-hidden="true">&laquo;</span>
								  </a>
								</li>
								<li><a href="#aba1" role="tab" data-toggle="tab">1</a></li>
								<li><a href="#aba2" role="tab" data-toggle="tab">2</a></li>
								<li>
								  <a href="#" aria-label="Next">
									<span aria-hidden="true">&raquo;</span>
								  </a>
								</li>
							  </ul>
							</nav>
							<input type="submit"  class="btn btn-success pull-right" value="Cadastrar"/>
							<a href="listarPacientes" role="button" class="btn btn-danger pull-right">Cancelar</a>
						</main>
						<!-- /.tab-content -->
					</form>
					<!-- /.form1 -->

Patient.java

package model;

import java.time.LocalDate;

public class Paciente {
private int id_paciente;
private String nome_paciente;
private String cpf;
private String rg;
private String email;

private LocalDate data_nasc;
private String sexo;
private String estado_civil;
private String nome_conjuge;
private String endereco;
private String bairro;
private String cidade;
private String cep;
private String estado_saude;
private boolean tem_alergia;
private String alergias;
private boolean tem_diabetes;
private boolean bebe;
private boolean tem_prob_resp;
private String prob_resp;
private boolean cirurgia_previa;
private String cirurgias;
private boolean fuma;
private boolean tem_prob_circ;
private String prob_circ;
private boolean usa_medicamentos;
private String medicamentos;

public int getId_paciente() {
    return id_paciente;
}

public void setId_paciente(int id_paciente) {
    this.id_paciente = id_paciente;
}

public String getNome_paciente() {
    return nome_paciente;
}

public void setNome_paciente(String nome_paciente) {
    this.nome_paciente = nome_paciente;
}

public String getCpf() {
    return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
}

public String getRg() {
    return rg;
}

public void setRg(String rg) {
    this.rg = rg;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public LocalDate getData_nasc() {
    return data_nasc;
}

public void setData_nasc(LocalDate data_nasc) {
    this.data_nasc = data_nasc;
}

public String getSexo() {
    return sexo;
}

public void setSexo(String sexo) {
    this.sexo = sexo;
}

public String getEstado_civil() {
    return estado_civil;
}

public void setEstado_civil(String estado_civil) {
    this.estado_civil = estado_civil;
}

public String getNome_conjuge() {
    return nome_conjuge;
}

public void setNome_conjuge(String nome_conjuge) {
    this.nome_conjuge = nome_conjuge;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

public String getBairro() {
    return bairro;
}

public void setBairro(String bairro) {
    this.bairro = bairro;
}

public String getCidade() {
    return cidade;
}

public void setCidade(String cidade) {
    this.cidade = cidade;
}

public String getCep() {
    return cep;
}

public void setCep(String cep) {
    this.cep = cep;
}

public String getEstado_saude() {
    return estado_saude;
}

public void setEstado_saude(String estado_saude) {
    this.estado_saude = estado_saude;
}

public boolean isTem_alergia() {
    return tem_alergia;
}

public void setTem_alergia(boolean tem_alergia) {
    this.tem_alergia = tem_alergia;
}

public String getAlergias() {
    return alergias;
}

public void setAlergias(String alergias) {
    this.alergias = alergias;
}

public boolean isTem_diabetes() {
    return tem_diabetes;
}

public void setTem_diabetes(boolean tem_diabetes) {
    this.tem_diabetes = tem_diabetes;
}

public boolean isBebe() {
    return bebe;
}

public void setBebe(boolean bebe) {
    this.bebe = bebe;
}

public boolean isTem_prob_resp() {
    return tem_prob_resp;
}

public void setTem_prob_resp(boolean tem_prob_resp) {
    this.tem_prob_resp = tem_prob_resp;
}

public String getProb_resp() {
    return prob_resp;
}

public void setProb_resp(String prob_resp) {
    this.prob_resp = prob_resp;
}

public boolean isCirurgia_previa() {
    return cirurgia_previa;
}

public void setCirurgia_previa(boolean cirurgia_previa) {
    this.cirurgia_previa = cirurgia_previa;
}

public String getCirurgias() {
    return cirurgias;
}

public void setCirurgias(String cirurgias) {
    this.cirurgias = cirurgias;
}

public boolean isFuma() {
    return fuma;
}

public void setFuma(boolean fuma) {
    this.fuma = fuma;
}

public boolean isTem_prob_circ() {
    return tem_prob_circ;
}

public void setTem_prob_circ(boolean tem_prob_circ) {
    this.tem_prob_circ = tem_prob_circ;
}

public String getProb_circ() {
    return prob_circ;
}

public void setProb_circ(String prob_circ) {
    this.prob_circ = prob_circ;
}

public boolean isUsa_medicamentos() {
    return usa_medicamentos;
}

public void setUsa_medicamentos(boolean usa_medicamentos) {
    this.usa_medicamentos = usa_medicamentos;
}

public String getMedicamentos() {
    return medicamentos;
}

public void setMedicamentos(String medicamentos) {
    this.medicamentos = medicamentos;
}

}

PatientController.java

package controller;

import java.sql.Connection;
import java.util.List;

import java.time.LocalDate;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import dao.PacienteDao;
import model.Paciente;
import dao.ConnectionFactory;


@Controller
@RequestMapping("pacientes/")
public class PacienteController {
@RequestMapping("novoPaciente")
public String novoPaciente() {
    return "pacientes/cadastrarPaciente";
}

Connection connection = new ConnectionFactory().getConnection();

@RequestMapping("adicionaPaciente")
public String adiciona(Paciente paciente) {

    PacienteDao dao = new PacienteDao(connection);
    dao.adiciona(paciente);
    return "listarPacientes";
}

@RequestMapping("listarPacientes")
public ModelAndView listar() {
    PacienteDao dao = new PacienteDao(connection);
    List<Paciente> pacientes = dao.getLista();

    ModelAndView modelAndView = new ModelAndView("pacientes/listarPacientes");
    modelAndView.addObject("pacientes", pacientes);
    return modelAndView;
}

@RequestMapping("removerPaciente")
public String remover(Paciente paciente) {
    PacienteDao dao = new PacienteDao(connection);
    dao.remove(paciente);
    return "redirect:listarPacientes";
}

@RequestMapping("detalharPaciente")
public ModelAndView detalhar(int id_paciente) {
    PacienteDao dao = new PacienteDao(connection);
    Paciente paciente = dao.detalha(id_paciente);

    ModelAndView modelAndView = new ModelAndView("pacientes/detalharPaciente");
    modelAndView.addObject("paciente", paciente);
    return modelAndView;
}

@RequestMapping("alterarPaciente")
public String alterar(Paciente paciente) {
    PacienteDao dao = new PacienteDao(connection);
    dao.altera(paciente);
    return "pacientes/listarPacientes";
}

}
    
asked by anonymous 17.03.2018 / 19:28

0 answers