2017-07-16 22 views
2

私のプロジェクトでこのエラーが発生しました。HTTPステータス400 - リクエストが悪い - Spring MVC

HTTPステータス400 - 不正リクエスト。

サーバーは、クライアントエラー(たとえば、不正なリクエスト構文、無効なリクエストメッセージフレーミング、または欺瞞的なリクエストルーティング)であると考えられるため、リクエストを処理できない、または処理しません。私はすべてをしようとしている

@Entity 
@Table (name= "clientes") 
public class Cliente { 

    @Id 
    @GeneratedValue (strategy = GenerationType.IDENTITY) 
    @Column 
    private Integer id; 

    @Column 
    private String nome; 

    @Column 
    private String cpf; 

    @OneToOne 
    @JoinColumn (name="pais") 
    private Pais pais; 

    @OneToOne 
    @JoinColumn (name="estado") 
    private Estado estado; 

    @OneToOne 
    @JoinColumn (name="cidade") 
    private Cidade cidade; 

    @Column 
    private String logradouro; 

    @Column 
    private String numero; 

    @Column 
    private String cep; 

    @Column 
    private String email; 

InsertClient.jsp

<form:form action="/moldar/saveCliente/" method="POST" modelAttribute="cliente"> 

    <div class="form-group"> 
     <label for="exampleSelect1">Pais</label> 
     <form:select path="pais" class="form-control" id="pais" name="wwww"> 
      <c:forEach var="lista" items="${listaPaises}"> 
       <option value="${lista.id}">${lista.nome}</option> 
      </c:forEach> 
     </form:select> 
    </div> 

    <div class="form-group"> 
     <label for="exampleSelect1">Estado</label> 
     <form:select path="estado" class="form-control" id="estado" name="qqqqq"> 
      <option value="">Selecione um estado</option> 
      <c:forEach var="lista" items="${listaEstados}"> 
       <option value="${lista.id}">${lista.nome}</option> 
      </c:forEach> 
     </form:select> 
    </div> 

    <div class="form-group"> 
     <label for="exampleSelect1">Cidade</label> 
     <form:select path="cidade" class="form-control" id="cidade" name="batata"> 
      <option value="null">Selecione uma cidade</option> 
      <c:forEach var="lista" items="${listaCidades}"> 
       <option value="${lista.id}">${lista.nome}</option> 
      </c:forEach> 
     </form:select> 
    </div> 

マイコントローラー

@RequestMapping(value = "/saveCliente", method = RequestMethod.POST) 
     public String adicionarCliente(@ModelAttribute("cliente") Cliente cliente) { 


      clienteDao.saveOrUpdate(cliente); 

      return "redirect:/clientes"; 
     } 

@RequestMapping(value = "/addCliente", method = RequestMethod.GET, headers = "Accept=application/json") 
     public String inserirCliente(Model model) { 

      List<Estado> listaEstados = estadoDao.list(null); 
      List<Cidade> listaCidades = cidadeDao.list(null); 
      List<Pais> listaPaises = paisDao.list(null); 

      model.addAttribute("listaPaises", listaPaises); 
      model.addAttribute("listaEstados", listaEstados); 
      model.addAttribute("pais", new Pais()); 
      model.addAttribute("cliente", new Cliente()); 
      model.addAttribute("estado", new Estado()); 
      model.addAttribute("cidade", new Cidade()); 
      model.addAttribute("listaCidades", listaCidades); 
      return "inserirCliente"; 
     } 

モデル。

誰かが私を助けることができますか?お願いします ?

+1

あなたは要求について何かを共有するのでしょうか? –

答えて

0

あなたContollerでコード

 public String adicionarCliente(@ModelAttribute("cliente") Cliente cliente) 

のこのラインはあなたのClienteクラスでPAIS

<form:select path="pais" class="form-control" id="pais" name="wwww"> 

のような変数は、あなたがにこのパス= "PAIS"をバインドすることはできませんクライアントクラス変数pais、B paisは文字列型ではなく、オブジェクト型です。

別のクラスを入力すると、入力選択オプションが変数にバインドされます。

class Client { 
    private String pais; 
    private String estado; 
    private String cidade; 

public String getPais() { 
    return pais; 
} 

public void setPais(String pais) { 
    this.pais = pais; 
} 

public String getEstado() { 
    return estado; 
} 

public void setEstado(String estado) { 
    this.estado = estado; 
} 

public String getCidade() { 
    return cidade; 
} 

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

}

関連する問題