2017-11-18 3 views
0

Ich bin ein Neuling im Frühjahr mvc. Ich versuche, im Frühjahr mit MySQL jdbc einfache Crud zu machen. Für das Datamapping habe ich eine Springform verwendet. Jedes Mal, wenn ich versuche, Springform zu verwenden, um es zeigt einen Fehlerjava.lang.IllegalStateException: Weder BindingResult noch reines Zielobjekt für den Bean-Namen 'userData' als Anfrageattribut verfügbar

Error is here

Immer, wenn ich Springform entfernen und Normalform verwenden Sie es in Ordnung aussieht, zeigt aber einen Fehler, wenn Federform verwendet. Der Fehler sagt java.lang.IllegalStateException: Weder BindingResult noch ebene Zielobjekt für bean name 'Userdata' als Anfrage Attribut

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

Servlet Klasse

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"; 
    } 
} 

Antwort

0

Sie müssen @RequestParam verwenden, um einen einzelnen Wert zu erhalten.

Formulardaten mit der Modellklasse binden Sie müssen das Modell (POJO) als userData commandName = "userData" erstellen. Sowohl der Befehlsname als auch der ModelClass Name sind identisch.

Felder der Klasse firstName und beide gleich. Dann werden Ihre Formulardaten mit Pojo gebunden Es kommt bei Ihrer Controller-Klasse an.

Ich hoffe, es wird helfen.

Verwandte Themen