2017-11-18 121 views
0

我是春季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"; 
    } 
} 

回答

0

您必須使用@RequestParam才能獲得單個值。

使用模型類綁定表單數據您需要創建Model(POJO)作爲userData commandName =「userData」.CommandName和ModelClass Name都相同。

類firstName的字段和兩個相同。然後你的表格數據與Pojo綁定它將在你的控制器類上。

我希望這會有所幫助。

相關問題