java.lang.IllegalStateException:既没有BindingResult也没有bean名称'userData'的普通目标对象可用作请求属性

java.lang.IllegalStateException:既没有BindingResult也没有bean名称'userData'的普通目标对象可用作请求属性

问题描述:

我是春季mvc中的新手。我正在尝试使用MySQL jdbc在春季制作简单的垃圾邮件。对于数据映射,我使用了弹簧表单。每当我试着用弹簧的形式,它显示了一个错误java.lang.IllegalStateException:既没有BindingResult也没有bean名称'userData'的普通目标对象可用作请求属性

Error is here

每当我取出弹簧形式和正常使用的形式,它看起来不错,但显示了用于弹簧形式时出错。错误说java.lang.IllegalStateException:无论BindingResult也不是为bean名称 '用户数据' 可以作为请求属性平原目标对象

header.jsp中

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 

    </head> 
    <body> 
     <nav class="navbar navbar-inverse"> 
      <div class="container-fluid"> 
       <div class="navbar-header"> 
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
        </button> 
        <a class="navbar-brand" href="#">SpringCRUDDemo</a> 
       </div> 
       <div class="collapse navbar-collapse" id="myNavbar"> 
        <ul class="nav navbar-nav"> 
         <li><a href="<c:url value='/'/>">Home</a></li> 
         <li><a href="<c:url value='/view/'/>">View</a></li> 
         <li><a href="#">Update</a></li> 
         <li><a href="#">Delete</a></li> 
        </ul> 
        <ul class="nav navbar-nav navbar-right"> 
         <li><a href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li> 
         <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> 
        </ul> 
       </div> 
      </div> 
     </nav> 

的index.jsp

<%@include file="./shared/header.jsp" %> 

<div class="container"> 
    <form:form commandName="userData" action="#" method="post" enctype="multipart/form-data"> 
     <label for="firstname" class="label">Enter your first name</label> 
     <form:input path="firstName"/> 
    </form:form> 
</div> 

servlet class

package com.nishan.springcruddemo.servlet; 

import com.nishan.springcruddemo.daoimp.CustomerDaoImp; 
import com.nishan.springcruddemo.entity.Customer; 
import java.sql.SQLException; 
import org.springframework.beans.factory.annotation.Autowired; 
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; 

/** 
* 
* @author Dell 
*/ 
@Controller 

public class DefaultController { 

    @Autowired 
    CustomerDaoImp customerDaoImp; 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String index() { 
     return "index"; 
    } 

    @RequestMapping(value = "/insert", method = RequestMethod.POST) 
    public String save(@ModelAttribute("userData") Customer customer) { 
     try { 
      customerDaoImp.insert(customer); 
     } catch (ClassNotFoundException | SQLException ex) { 
      System.out.println(ex.getMessage()); 
     } 

     return "redirect:/index"; 
    } 

    @RequestMapping(value = "/view", method = RequestMethod.GET) 
    public String viewCustomer() { 
     return "view-customer"; 
    } 
} 

您必须使用@RequestParam才能获得单个值。

使用模型类绑定表单数据您需要创建Model(POJO)作为userData commandName =“userData”.CommandName和ModelClass Name都相同。

类firstName的字段和两个相同。然后你的表格数据与Pojo绑定它将在你的控制器类上。

我希望这会有所帮助。