Olá,
Estou com o seguinte problema, estou criando uma tela para editar as informações do usuário que esta logado. Porem ao submeter o formulario para alterar as informações ele esta "criando" um novo usuário.
Por algum motivo o metodo "save" não esta reconhecendo o ID do usuário e por isso esta tentando criar um novo usuário.
Controller:
@RequestMapping(value = "/editar", method = RequestMethod.GET)
public String editar(Model model) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String nomeUsuario = auth.getName();
Usuario ususarioASerAlterado = repositorioUsuario.findByUsername(nomeUsuario);
model.addAttribute("usuario", ususarioASerAlterado);
return "painel.editar.tiles";
}
@RequestMapping(value = "/editar", method = RequestMethod.POST)
public String alterar(@ModelAttribute("usuario") Usuario usuario, Model model) {
repositorioUsuario.save(usuario);
return "redirect:/painel/";
}
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/form" prefix="form"%>
<c:url var="actionAlterar" value="/painel/editar"></c:url>
<form:form action="${actionAlterar}" method="post" modelAttribute="usuario" cssClass="df-personal-info">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="username">Usuário</label>
<form:input path="username" cssClass="form-control"/>
<form:errors path="username" cssStyle="color: red;"></form:errors>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="nome">Nome</label>
<form:input path="nome" cssClass="form-control"/>
<form:errors path="nome" cssStyle="color: red;"></form:errors>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="sobrenome">Sobrenome</label>
<form:input path="sobrenome" cssClass="form-control"/>
<form:errors path="sobrenome" cssStyle="color: red;"></form:errors>
</div>
</div>
</div>
<div class="form-group--submit">
<button type="submit" class="btn btn-default btn-lg btn-block">Alterar informações</button>
</div>
</form:form>