HTTP状态500 - 请求处理失败;嵌套异常是org.springframework.web.bind.annotation.support.HandlerMethodInvocationException

时间:2016-09-02 02:17:12

标签: java spring hibernate spring-mvc

我需要你帮我解决我的代码中的错误

form

<form:form action="user.do" method="POST" commandName="user">
                    <div class="form-group">
                        <form:input path="userName" cssClass="form-control "/>
                    </div>
                    <div class="form-group">
                        <form:password path="password" cssClass="form-control "/>
                    </div>
                    <div class="form-group">
                        <input type="submit" name="action" value="Login" class="btn btn-info col-xs-12"/>
                    </div>

                    </form:form>

控制器

@RequestMapping(value="/user.do", method=RequestMethod.POST)
public String doAction(@ModelAttribute Users user,Model model, BindingResult result,Map<String, Object> map)
{
    Users user1 = new Users();
    user1 = userService.userLogin(user);
    user1 = userService!=null ? user1 : new Users();

    map.put("user", userService.userLogin(user));
    return "home";
}

实施Dao Clsss

    package com.hmy.Dao.Impl;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.hmy.Dao.UsersDao;
import com.hmy.Model.Users;

@Repository
public class UsersDaoImpl implements UsersDao {

    @Autowired
    private SessionFactory session;

    @Override
    public Users userLogin(Users user) {

        return (Users)session.getCurrentSession().get(Users.class, user.getUserName());
    }

}


[Implementation of Service class][1]

尝试提交数据时显示错误

  

HTTP状态500 - 请求处理失败;嵌套异常是   org.springframework.web.bind.annotation.support.HandlerMethodInvocationException:   无法调用处理程序方法[public java.lang.String   com.hmy.Controller.UsersController.doAction(com.hmy.Model.Users,org.springframework.ui.Model,org.springframework.validation.BindingResult,java.util.Map)];   嵌套异常是java.lang.IllegalStateException:   在没有先前模型的情况下声明的Errors / BindingResult参数   属性。检查处理程序方法签名!

     

输入例外报告

     

消息请求处理失败;嵌套异常是   org.springframework.web.bind.annotation.support.HandlerMethodInvocationException:   无法调用处理程序方法[public java.lang.String   com.hmy.Controller.UsersController.doAction(com.hmy.Model.Users,org.springframework.ui.Model,org.springframework.validation.BindingResult,java.util.Map)];   嵌套异常是java.lang.IllegalStateException:   在没有先前模型的情况下声明的Errors / BindingResult参数   属性。检查处理程序方法签名!

     

description服务器遇到阻止它的内部错误   完成此请求。

     

例外

     

org.springframework.web.util.NestedServletException:Request   处理失败;嵌套异常是   org.springframework.web.bind.annotation.support.HandlerMethodInvocationException:   无法调用处理程序方法[public java.lang.String   com.hmy.Controller.UsersController.doAction(com.hmy.Model.Users,org.springframework.ui.Model,org.springframework.validation.BindingResult,java.util.Map)];   嵌套异常是java.lang.IllegalStateException:   在没有先前模型的情况下声明的Errors / BindingResult参数   属性。检查处理程序方法签名!     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)     org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)     javax.servlet.http.HttpServlet.service(HttpServlet.java:648)     javax.servlet.http.HttpServlet.service(HttpServlet.java:729)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   根本原因

     

org.springframework.web.bind.annotation.support.HandlerMethodInvocationException:   无法调用处理程序方法[public java.lang.String   com.hmy.Controller.UsersController.doAction(com.hmy.Model.Users,org.springframework.ui.Model,org.springframework.validation.BindingResult,java.util.Map)];   嵌套异常是java.lang.IllegalStateException:   在没有先前模型的情况下声明的Errors / BindingResult参数   属性。检查处理程序方法签名!     org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:181)     org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)     org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)     org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)     javax.servlet.http.HttpServlet.service(HttpServlet.java:648)     javax.servlet.http.HttpServlet.service(HttpServlet.java:729)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   根本原因

     

java.lang.IllegalStateException:Errors / BindingResult参数   声明没有先前的模型属性。检查处理程序方法   签名!     org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:327)     org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)     org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)     org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)     org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)     javax.servlet.http.HttpServlet.service(HttpServlet.java:648)     javax.servlet.http.HttpServlet.service(HttpServlet.java:729)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   note注意Apache中提供了根本原因的完整堆栈跟踪   Tomcat / 8。8。28日志。

所以我需要你的帮助来解决这个问题,因为我花了很多时间尝试使用休眠的Spring

2 个答案:

答案 0 :(得分:0)

你好,如果你想知道如何结合Spring和hibernate我做了一个源代码或者我的意思是模板这就是行https://github.com/Try-Parser/FDFBaseCodeJava它是一个带有Spring安全性的Spring MVC你可以在那里探索我让它更简单比其他如果它可以帮助你感谢哈哈,顺便说一下我没有看到你的spring-servlet.xml,也是你的hibernate配置.xml文件

答案 1 :(得分:0)

不确定您当前的Spring版本。

但请检查您是否需要在方法签名中BindingResult之后放置@ModelAttribute

由于您未从我看到的内容中执行任何验证,因此您可以完全从方法签名中删除BindingResult

http://viralpatel.net/blogs/errorsbindingresult-argument-declared-without-preceding-model-attribute/