我需要你帮我解决我的代码中的错误
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
答案 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/