Senhores na aula foi usado input type text para duas situação, mostrar os valores da enum e para receber a informação do usuario.
Tentei adaptar para utilizar radio no formulario deu certo mas quando tento cadastrar recebo uma mensagem de erro
The request sent by the client was syntactically incorrect.
infelizmente nao consegui encontrar nem entender o motivo desse erro segue
minha jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8>
<title>Cliente Oculto</title>
</head>
<body>
<h1>Cadastro de clientes</h1>
<c:url value="/clientes" var="url" />
<form action="${url }" method="post">
<div>
<label for="nomeFantasia">Nome Fantasia</label> <input type="text"
name="nomeFantasia" id="nomeFantasia" />
</div>
<div>
<label for="razaoSocial">Razão Social</label> <input type="text"
name="razaoSocial" id="razaoSocial" />
<c:forEach items="${listaTipos }" var="tipoEmpresa" varStatus="status">
</div>
<input type="radio" name="tipos" id="tipo_${tipoEmpresa }"/>
<c:out value="${tipoEmpresa}"/>
<div>
</c:forEach>
<input type="submit" value="Cadastrar" />
</div>
</form>
</body>
</html>
meu controller
package br.com.clienteoculto.controllers;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import br.com.clienteoculto.daos.ClienteDAO;
import br.com.clienteoculto.models.Cliente;
import br.com.clienteoculto.models.TipoEmpresa;
@Controller
public class ClientesController {
@Autowired
ClienteDAO clienteDAO;
@RequestMapping("/clientes/form")
public ModelAndView form() {
ModelAndView modelAndView = new ModelAndView("clientes/cadastro_clientes");
modelAndView.addObject("listaTipos", TipoEmpresa.values());
return modelAndView;
}
@RequestMapping("/clientes")
@Transactional
public String save(Cliente cliente) {
clienteDAO.save(cliente);
System.out.println(cliente);
return "clientes/ok";
}
}
classe Cliente
package br.com.clienteoculto.models;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Cliente {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nomeFantasia;
private String razaoSocial;
@ElementCollection
private List<Tipos> tipos = new ArrayList<Tipos>() ;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNomeFantasia() {
return nomeFantasia;
}
public void setNomeFantasia(String nomeFantasia) {
this.nomeFantasia = nomeFantasia;
}
public String getRazaoSocial() {
return razaoSocial;
}
public void setRazaoSocial(String razaoSocial) {
this.razaoSocial = razaoSocial;
}
public List<Tipos> getTipos() {
return tipos;
}
public void setTipos(List<Tipos> tipos) {
this.tipos = tipos;
}
}
classe Tipos
package br.com.clienteoculto.models;
import javax.persistence.Embeddable;
@Embeddable
public class Tipos {
private TipoEmpresa tipoEmpresa;
public TipoEmpresa getTipoEmpresa() {
return tipoEmpresa;
}
public void setTipoEmpresa(TipoEmpresa tipoEmpresa) {
this.tipoEmpresa = tipoEmpresa;
}
}
e a minha enum
package br.com.clienteoculto.models;
public enum TipoEmpresa {
MATRIZ,
FILIAL;
}
meu ClienteDAO
package br.com.clienteoculto.daos;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import br.com.clienteoculto.models.Cliente;
@Repository
public class ClienteDAO {
@PersistenceContext
private EntityManager manager;
public void save(Cliente cliente) {
manager.persist(cliente);
}
}
muito obrigado pela ajuda