Estou tentando passar o valor do check box para o ProjetoController mas a view me retorna "typeMismatch: tipo de dado inválido". Alguém consegue me dar uma direção?
Segue as classes:
Projeto
package br.com.csembrasil.compras.models;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
@SuppressWarnings("serial")
@Entity
public class Projeto implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String projeto;
@ManyToMany
private List<CentroDeCusto> centroDeCustos = new ArrayList<>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProjeto() {
return projeto;
}
public void setProjeto(String projeto) {
this.projeto = projeto;
}
public List<CentroDeCusto> getCentroDeCustos() {
return centroDeCustos;
}
public void setCentroDeCustos(List<CentroDeCusto> centroDeCustos) {
this.centroDeCustos = centroDeCustos;
}
}
ProjetoDao
package br.com.csembrasil.compras.daos;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import br.com.csembrasil.compras.models.Projeto;
@Repository
@Transactional
public class ProjetoDao {
@PersistenceContext
private EntityManager em;
private DAO<Projeto> dao;
public void adiciona(Projeto t) {
dao.adiciona(t);
}
public void remove(Projeto t) {
dao.remove(t);
}
public void atualiza(Projeto t) {
dao.atualiza(t);
}
public List<Projeto> listaTodos() {
return dao.listaTodos();
}
public Projeto buscaPorId(Integer id) {
return dao.buscaPorId(id);
}
}
Controller
package br.com.csembrasil.compras.controllers;
import java.io.Serializable;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import br.com.csembrasil.compras.daos.CentroDeCustoDao;
import br.com.csembrasil.compras.daos.ProjetoDao;
import br.com.csembrasil.compras.models.Projeto;
import br.com.csembrasil.compras.validation.ProjetoValidation;
@Controller
@RequestMapping("/projeto")
public class ProjetoController implements Serializable {
private static final long serialVersionUID = 1L;
@Autowired
private ProjetoDao projetoDao;
@Autowired
CentroDeCustoDao centroDeCustoDao;
@RequestMapping("form")
public ModelAndView form(Projeto projeto) {
ModelAndView modelAndView = new ModelAndView("projeto/form");
modelAndView.addObject("centroDeCustos", centroDeCustoDao.listaTodos());
return modelAndView;
}
@RequestMapping(method = RequestMethod.POST)
public ModelAndView gravar(@Valid Projeto projeto, BindingResult result,
RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
return form(projeto);
}
if (projeto.getId() == null) {
projetoDao.adiciona(projeto);
} else {
projetoDao.atualiza(projeto);
}
redirectAttributes.addFlashAttribute("messages",
"Projeto cadastro com sucesso" );
return new ModelAndView("redirect:/projeto");
}