gpt4 book ai didi

java - 我收到异常 BindingResult 和 bean 名称 'studentRegistration' 的普通目标对象都可用作 spring 中的请求属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:37 24 4
gpt4 key购买 nike

我是 Spring 的新手。我正在创建一个项目,其中注册是像任何其他项目一样的基本要求。但是我收到了下面给出的异常

Neither BindingResult nor plain target object for bean name 'studentRegistration' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'studentRegistration' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
at org.apache.jsp.studentRegistration_jsp._jspx_meth_form_005finput_005f0(studentRegistration_jsp.java:565)
at org.apache.jsp.studentRegistration_jsp._jspx_meth_form_005fform_005f0(studentRegistration_jsp.java:419)
at org.apache.jsp.studentRegistration_jsp._jspService(studentRegistration_jsp.java:189)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Jul 12, 2016 5:07:58 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/projectMonitoring] threw exception [java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'studentRegistration' available as request attribute] with root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'studentRegistration' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
at org.apache.jsp.studentRegistration_jsp._jspx_meth_form_005finput_005f0(studentRegistration_jsp.java:565)
at org.apache.jsp.studentRegistration_jsp._jspx_meth_form_005fform_005f0(studentRegistration_jsp.java:419)
at org.apache.jsp.studentRegistration_jsp._jspService(studentRegistration_jsp.java:189)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

我知道这个异常很常见,很多人对此做出了回复,但任何解决方案都不适合我。我还尝试运行以前创建的同一类别项目的“.war”文件,但它们也显示相同的异常。最后我在这里发布这个问题。这是我的模型

package edu.projectMonitoring.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="studentdetail")
public class Student {

@Id
@Column(name="emailId")
String email;
@Column(name="name")
String name;
@Column(name="Class")
String clas;
@Column(name="enrollementNo")
String enrollment;
@Column(name="password")
String password;
@Column(name="course")
String course;
@Column(name="contactNo")
String contactNo;
@Column(name="status")
String status;



public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}


public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getClas() {
return clas;
}

public String getEnrollment() {
return enrollment;
}
public void setEnrollment(String enrollment) {
this.enrollment = enrollment;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCourse() {
return course;
}
public void setCourse() {
this.course = course;

}
public String getContactNo() {
return contactNo;
}
public void setContactNo(String contactNo) {
this.contactNo = contactNo;
}

public void setClas(String clas) {
this.clas = clas;
}
public void setCourse(String course) {
this.course = course;
}



}

这是我的 Controller

package edu.projectMonitoring.controller;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import edu.projectMonitoring.model.Student;

@Controller
@RequestMapping(value = "/studentRegistration")
public class StudentRegistration {
@RequestMapping(method = RequestMethod.GET)
public String viewRegistration(Map<String, Object> model) {
Student registerForm = new Student();
model.put("studentRegistration", registerForm);
List<String> courseList = new ArrayList<String>();
courseList.add("Developer");
courseList.add("Designer");
courseList.add("IT Manager");
model.put("courseList", courseList);
return "studentRegistration";
}
@RequestMapping(method = RequestMethod.POST)
public String processRegistration(@ModelAttribute("studentRegistration") Student registerForm,
Map<String, Object> model) {
// implement your own registration logic here...
// for testing purpose:
/*System.out.println("username: " + user.getUsername());
System.out.println("password: " + user.getPassword());
System.out.println("email: " + user.getEmail());
System.out.println("birth date: " + user.getBirthDate());
System.out.println("profession: " + user.getProfession());
*/ return "index";
}

}

这是我的观点

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<meta name="viewport" content="width=device-width, initial-scale=1">

<%-- <link href="<c:url value="/resources/css/bootstrap.min.css" />" rel="stylesheet"> --%>
<spring:url value="/resources/css/bootstrap.min.css" var="mainCss" />
<link href="${mainCss}" rel="stylesheet" />
<!-- <link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet"> -->
<spring:url value="/resources/css/bootstrap-cerulean.min.css" var="cerulonCss" />
<link href="${cerulonCss}" rel="stylesheet" />
<spring:url value="/resources/css/charisma-app.css" var="charismaCss" />
<link href="${charismaCss}" rel="stylesheet" />
<spring:url value="/resources/css/animate.min.css" var="animateCss" />
<link href="${animateCss}" rel="stylesheet" />
<spring:url value="/resources/css/custom.css" var="customCss" />
<link href="${customCss}" rel="stylesheet" />
</head>
<body>
<div>
<form:form action="studentRegistration" method="post" commandName="studentRegistration" class="form-horizontal">
<div class="form-group">
<label for="name" class="col-sm-2 control-label"><spring:message code="student.name"/></label>
<div class="col-sm-10">
<form:input path="name" class="form-control" placeholder="Name"/>
</div>
</div>
<div class="form-group">
<label for="course" class="col-sm-2 control-label"><spring:message code="student.course"/></label>
<div class="col-sm-10">
<form:select path="course" items="${courseList}" />
</div>
</div>
<div class="form-group">
<label for="clas" class="col-sm-2 control-label"><spring:message code="student.class"/></label>
<div class="col-sm-10">
<form:select path="clas" items="${classList}" />
</div>
</div>
<div class="form-group">
<label for="enrollement" class="col-sm-2 control-label"><spring:message code="student.enrollement"/></label>
<div class="col-sm-10">
<form:input path="enrollement" class="form-control" placeholder="Enrollement Number"/>
</div>
</div>
<div class="form-group">
<label for="contactNo" class="col-sm-2 control-label"><spring:message code="student.enrollement"/></label>
<div class="col-sm-10">
<form:input path="contactNo" class="form-control" placeholder="Contact Number"/>
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label"><spring:message code="student.enrollement"/></label>
<div class="col-sm-10">
<form:input path="email" class="form-control" placeholder="Email"/>
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label"><spring:message code="student.enrollement"/></label>
<div class="col-sm-10">
<form:password path="password" class="form-control" placeholder="Password"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Sign in</button>
</div>
</div>


</form:form>
</div>
<!-- JavaScript Files Starts-->
<spring:url value="/resources/js/jquery-1.12.2.min.js" var="jqueryJs" />
<spring:url value="/resources/js/bootstrap.min.js" var="bootstrapJs" />
<spring:url value="/resources/js/jquery.cookie.js" var="cookieJs" />
<spring:url value="/resources/js/charisma.js" var="charJs" />

<script src="${jqueryJs}"></script>
<script src="${bootstrapJs}"></script>
<script src="${cookieJs}"></script>
<script src="${charJs}"></script>

<!-- JavaScript Files Ends-->
</body>
</html>

最后这是我的 pom.xml 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hari</groupId>
<artifactId>springBasics</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springBasics Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>

<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>


<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-commons-annotations -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.2.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>



</dependencies>
<build>
<finalName>projectMonitoring</finalName>
</build>
</project>

请帮助摆脱困境。提前致谢。

最佳答案

尝试以下方法来查看您是否仍然遇到该错误

我的假设:您正在浏览器上显示带有 html 扩展名的实际 jsp。

  1. 稍微修改您的 StudentRegistration.java Controller ,例如

    @Controller
    public class StudentRegistration {

    @RequestMapping(value = "/studentRegistration", method = RequestMethod.GET)
    public String viewRegistration(Map<String, Object> model) {
    Student registerForm = new Student();
    model.put("studentRegistration", registerForm);
    List<String> courseList = new ArrayList<String>();
    courseList.add("Developer");
    courseList.add("Designer");
    courseList.add("IT Manager");
    model.put("courseList", courseList);
    return "studentRegistration";
    }

    @RequestMapping((value = "/index", method = RequestMethod.POST)
    public String processRegistration(@Valid Student registerForm, Map<String, Object> model, BindingResult result) {
    if (result.hasErrors()) {
    return "error";
    }
    else {
    //Do your student registeration process
    ...
    return "index";
    }
    }}
  2. 修改表单标记上的 JSP

<form:form action="index.html" method="post" commandName="studentRegistration" class="form-horizontal">

关于java - 我收到异常 BindingResult 和 bean 名称 'studentRegistration' 的普通目标对象都可用作 spring 中的请求属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38328086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com