Skip to content

Instantly share code, notes, and snippets.

@vinnom
Created December 31, 2019 00:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinnom/e9df09a72e20a9528ad04555d44f6ce5 to your computer and use it in GitHub Desktop.
Save vinnom/e9df09a72e20a9528ad04555d44f6ce5 to your computer and use it in GitHub Desktop.
Não estou conseguindo passar os dados da View para o Controller
<%@ 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"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="security"%>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -->
<c:url value="/resources" var="resPath" />
<c:url value="/usuarios/editar" var="editar"/>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<c:url value="/resources/css" var="cssPath" />
<link rel="stylesheet" href="${cssPath}/bootstrap.min.css" />
<link rel="stylesheet" href="${cssPath}/bootstrap-theme.min.css" />
<title>Livros de Java, Android, iPhone, Ruby, PHP e muito mais - Casa do Código</title>
</head>
<body>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="${s:mvcUrl('HC#index').build()}">Casa do Código</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="nav-item"><a href="${s:mvcUrl('PC#listar').build()}">Lista de Produtos</a></li>
<li class="nav-item"><a href="${s:mvcUrl('PC#form').build()}">Cadastro de Produtos</a></li>
<li class="nav-item"><a href="${s:mvcUrl('UC#listar').build()}">Lista de Usuários</a></li>
<li class="nav-item"><a href="${s:mvcUrl('PSC#pedidos').build()}">Pedidos</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="nav-item"><span><a href="<c:url value="/logout" />">Sair</a></span></li>
<li class="nav-item">
<a href="#"><security:authentication property="principal" var="usuario" /> ${usuario.username} </a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
</nav>
<div class="container">
<h2><a href="${s:mvcUrl('UC#form').build()}">Novo Usuário</a></h2>
<h1>Usuários cadastrados:</h1>
<h3>${sucesso}</h3>
<table class="table table-bordered table-striped table-hover">
<tr>
<th>Nome</th>
<th>Email</th>
<th>Roles</th>
</tr>
<c:forEach items="${usuarios}" var="usuario">
<tr>
<td>${usuario.nome}</td>
<td>${usuario.email}</td>
<td>${usuario.roles}</td>
<td>
<form:form servletRelativeAction="${s:mvcUrl('UC#editarForm').arg(0, usuario.email).build()}"
method="POST" modelAttribute="email">
<input type="image" name="usuario" src="${resPath}/imagens/editar.png" alt="Editar" title="Editar" >
</form:form>
</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
package br.com.casadocodigo.loja.controllers;
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.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import br.com.casadocodigo.loja.dao.RoleDAO;
import br.com.casadocodigo.loja.dao.UsuarioDAO;
import br.com.casadocodigo.loja.models.Role;
import br.com.casadocodigo.loja.models.Usuario;
import br.com.casadocodigo.loja.validation.UsuarioValidation;
@Controller
@RequestMapping("/usuarios")
public class UsuarioController {
@Autowired
private UsuarioDAO usuarioDao;
@Autowired
private RoleDAO roleDao;
@Autowired
private UsuarioValidation validaUsuario;
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.addValidators(validaUsuario);
}
@RequestMapping("/form")
public ModelAndView form(Usuario usuario) {
ModelAndView modelAndView = new ModelAndView("usuarios/form");
return modelAndView;
}
@RequestMapping(method = RequestMethod.POST)
public ModelAndView gravar(@Valid Usuario usuario, BindingResult result, RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
return form(usuario);
}
usuarioDao.gravar(usuario);
String sucesso = "Usuário " + usuario.getNome() + " cadastrado com sucesso!";
redirectAttributes.addFlashAttribute("sucesso", sucesso);
return new ModelAndView("redirect:/usuarios");
}
@RequestMapping(method = RequestMethod.GET)
public ModelAndView listar() {
List<Usuario> usuarios = usuarioDao.listar();
ModelAndView modelAndView = new ModelAndView("usuarios/lista");
modelAndView.addObject("usuarios", usuarios);
return modelAndView;
}
@RequestMapping("/roles/{email}")
public ModelAndView editarForm(@PathVariable("email") String email) {
ModelAndView mav = new ModelAndView("/usuarios/editar");
Usuario usuario = usuarioDao.loadUserByUsername(email);
mav.addObject("usuario", usuario);
List<Role> listaRoles = roleDao.listar();
mav.addObject("listaRoles", listaRoles);
return mav;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment