java.lang.IllegalStateException:BindingResult和bean名称’user’的普通目标对象都不可用作请求属性

这些天我开始学习Spring,Iam得到以下exception:我只是想从登录页面导航(稍后将使用DAO在db中插入opeartion)到一些index.jsp页面

exception org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 11 8:  9:  10: 
11: 12: 13: 14:
Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:424) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) root cause java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute org.springframework.web.servlet.support.BindStatus.(BindStatus.java:141) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:179) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:199) org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130) org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120) org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:103) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:157) org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:111) org.apache.jsp.login_jsp._jspService(login_jsp.java:71) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

login.jsp的

      Login   

LoginController.java

 package com.bts.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; @Controller @RequestMapping("/login") @SessionAttributes("user") public class LoginController { @RequestMapping(method=RequestMethod.POST) public String onSubmit(){ System.out.println("entered in submit methodd...."); return "index"; } } 

web.xml中

   BugTrackingSystem  login.jsp   contextConfigLocation /WEB-INF/application-context.xml   org.springframework.web.context.ContextLoaderListener   dispatcher  org.springframework.web.servlet.DispatcherServlet  2   dispatcher /   

User.java * 强文 *

 package com.bts.vo; import java.util.ArrayList; import java.util.List; public class User { public User() { countries = new ArrayList(); countries.add("India"); countries.add("US"); } private String uname; private String password; private List countries; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public List getCountries() { return countries; } public void setCountries(List countries) { this.countries = countries; } } 

应用程序的context.xml

       

调度员servlet.xml中

     /WEB-INF/jsp/   .jsp     

请有人可以运行我的代码并为我提供解决方案.. 🙂

JSP中的表单标记正在尝试绑定到名为user的bean(由commandName="user" ),但这并未在控制器中公开为模型属性。

尝试添加到您的控制器:

 @ModelAttribute("user") public User createModel() { return new User(); } 

由于您的控制器使用@SessionAttributes("user")进行注释,因此模型将在第一次创建时存储在会话中。 后续请求将从会话中提取模型。