Controller
import java.util.List; import java.util.UUID;
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.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import br.com.casadocodigo.dao.ProdutoDAO; import br.com.casadocodigo.infra.FileSaver; import br.com.casadocodigo.models.Produto; import br.com.casadocodigo.models.TipoPreco; import br.com.casadocodigo.validation.ProdutoValidation;
@Controller @RequestMapping("/produtos") public class ProdutosController {
@Autowired private ProdutoDAO produtoDao;
@Autowired private FileSaver fileSaver;
@InitBinder public void initBinber(WebDataBinder dataBinder) { dataBinder.addValidators(new ProdutoValidation()); }
@RequestMapping("/form") public ModelAndView form(Produto produto) { TipoPreco[] tipoPrecos = TipoPreco.values();
ModelAndView modelAndView = new ModelAndView("produtos/form"); modelAndView.addObject("tipos", tipoPrecos); return modelAndView; }
@RequestMapping(method = RequestMethod.POST) public ModelAndView gravar(MultipartFile sumario, @Valid Produto produto, BindingResult result, RedirectAttributes redirectAttributes) {
System.out.println(sumario.getOriginalFilename());
String sumarioPath = fileSaver.write("arquivos-sumario", sumario); produto.setSumarioPath(sumarioPath); if (result.hasErrors()) { return form(produto); }
produtoDao.gravar(produto);
redirectAttributes.addFlashAttribute("sucesso", "Produto cadastrado com sucesso!");
return new ModelAndView("redirect:produtos"); }
@RequestMapping(method = RequestMethod.GET) public ModelAndView lista() {
List produtos = produtoDao.listar(); ModelAndView modelAndView = new ModelAndView("produtos/lista"); modelAndView.addObject("produtos", produtos); return modelAndView; }
@RequestMapping( value = "/detalhe/{id}", method = RequestMethod.GET) public ModelAndView detalhe(@PathVariable("id") int id){
Produto produto = produtoDao.find(id); ModelAndView modelAndView = new ModelAndView("produtos/detalhe"); modelAndView.addObject("produto", produto); return modelAndView;
}
}
O erro esta ocorrendo quando eu acesso http://localhost:8081/casadocodigo/produtos/
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<!DOCTYPE html>
Lista de Produtos
${sucesso }
${falha }
Id Titulo Descrição Páginas
${produto.id } ${produto.titulo} ${produto.descricao }${produto.paginas }