Error Http 400 with Spring MVC

1

I am developing an application with Spring MVC and I have an http 400 request error.

The first time I call controller login for a request get redirects me to the jsp login and then the form jsp calls me back to the controller login with request post and redirects me to another jsp call home.

So far so good, the problem is that I have exactly another controller equal to this one but that a user registers and when the form is forwarded with the post method I get error 400. I show the code and please tell me if something is missing or because it can be.

Login Controller

  @RequestMapping(value="login",method=RequestMethod.GET)
    public String login(ModelMap model){
        UsuarioVO u=new UsuarioVO();
        model.put("usuario", u);
        return "login";
    }
    @RequestMapping(value="login",method=RequestMethod.POST)
    public String loginPost(HttpServletRequest req,HttpServletResponse res, @ModelAttribute("usuario")UsuarioVO us,ModelMap model){
        UsuarioVO u=null;
        if(us.getNombreUsuario()==null){
            model.put("error", "Error en la autentificación.Intentelo de nuevo");
            return "login";
        }else{
            u=this.usuarioService.obtenerUsuario(us.getNombreUsuario(), us.getContrasenia());
        }
        if(u.getIdUsuario()==null){
            model.put("error", "Error en la autentificación.Intentelo de nuevo");
            return "login";
        }else{
            model.put("usuario", u);
            model.put("historial", u.getHistorial().getListaContenidos());
            HttpSession session=req.getSession();
            session.setAttribute("usuario", u.getNombreUsuario());
            session.setAttribute("contra", u.getContrasenia());
            try {
                req.getRequestDispatcher("inicio").forward(req, res);
            } catch (ServletException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "inicio";
        }
    }

JSP login

  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"            "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lista de Peliculas</title>
</head>
<body>
    <h2>Iniciar Sesion</h2>
    <c:if test="${error!=null }"><h2>${error }</h2></c:if>
    <table>
    <form:form modelAttribute="usuario" method="post">
    <tr><td>Nombre Usuario: <form:input path="nombreUsuario"/><td></tr>
    <tr><td>Contrasenia: <form:input path="contrasenia"/><td></tr>
    <tr><td><button type="submit">Iniciar Sesion</button><td></tr>
    </form:form>
    <tr><td><spring:url value="registrarUsuario" var="registrar"/>
    <a href="${fn:escapeXml(registrar) }"><button>Registrar Usuario</button>                </a>
    <td></tr>
    </table>
</body>
</html>

Controller register user

    @RequestMapping(value="registrarUsuario" ,method=RequestMethod.GET)
    public String registrarse(ModelMap model){
        UsuarioVO u=new UsuarioVO();
        model.put("usuario", u);
        return "usuarios/registrarUsuario";
    }
    @RequestMapping(value="registrarUsuario",method=RequestMethod.POST)
    public String registrarsePost(HttpServletRequest req,HttpServletResponse res, @ModelAttribute("usuario")UsuarioVO us,ModelMap model){
        UsuarioVO u=us;
        if(u.getNombre()==null || u.getApellido()==null || u.getContrasenia()==null || u.getNombreUsuario()==null){
            model.put("error", "Error en el registro, debe rellenar todos los campos");
            return "usuarios/regitrarUsuario";
        }else{
            this.usuarioService.insertarUsuario(u);
            model.put("usuario", u);
            model.put("historial", u.getHistorial().getListaContenidos());
            HttpSession session=req.getSession();
            session.setAttribute("usuario", u.getNombreUsuario());
            session.setAttribute("contra", u.getContrasenia());
            try {
                req.getRequestDispatcher("inicio").forward(req, res);
            } catch (ServletException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "inicio";
        }
    }

jsp registerUser

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"         "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="form"         uri="http://www.springframework.org/tags/form"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Registrar Usuario</title>
    </head>
    <body>
<div>
    <h2>Registrar usuario</h2>
    <c:if test="${error!=null }"><h3>${error }</h3></c:if>
    <table>
    <form:form modelAttribute="usuario" method="post">
    <tr><td>Nombre usuario<form:input path="nombreUsuario"/><td></tr>
    <tr><td>Contrasenia<form:input path="contrasenia"/><td></tr>
    <tr><td>Nombre <form:input path="nombre"/><td></tr>
    <tr><td>Apellidos <form:input path="apellido"/><td></tr>
    <tr><td>Fecha Nacimiento <form:input path="fechaNac"/><td></tr>
    <tr><td><button type="submit">Registrarse</button><td></tr>
    </form:form>
    </table>
</div>
    </body>
    </html>
    
asked by JoseCa 18495 10.01.2017 в 13:22
source

0 answers