2012-12-21 11 views
6

मैं यह त्रुटिन तो BindingResult है और न ही उपलब्ध सेम नाम के लिए सादे लक्ष्य वस्तु अनुरोध विशेषता के रूप में - स्प्रिंग MVC

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute 

यह स्टैक ट्रेस

org.apache.jasper.JasperException है हो रही है: जावा .lang.IllegalStateException: अनुरोध गुण के रूप में उपलब्ध बीन नाम 'कमांड' के लिए बाध्यकारी रीसेट न ही सादा लक्ष्य वस्तु org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:5234) org.apache.jasper.servlet.JspServletWrapper .service (JspServletWrapper.jav ए: 452) org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:333) javax.servlet.http.HttpServlet .service (HttpServlet.java:722) मूल कारण java.lang.IllegalStateException: न तो BindingResult है और न ही सेम नाम 'कमांड' अनुरोध विशेषता org.springframework.web.servlet.support.BindStatus के रूप में उपलब्ध के लिए सादे लक्ष्य वस्तु । (BindStatus.java:141) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus (AbstractDataBoundFormElementTag.java:178) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPa वें (AbstractDataBoundFormElementTag.java:198) org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor (LabelTag.java:129) org.springframework.web.servlet.tags.form.LabelTag.resolveFor ​​(LabelTag। जावा: 119) org.springframework.web.servlet.tags.form.LabelTag.writeTagContent (LabelTag.java:89) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal (AbstractFormTag.java:102) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag (RequestContextAwareTag.java:79) org.apache.jsp.student_jsp._jspx_meth_form_005flabel_005f0 (student_jsp.java:182) org.apache.jsp.student_jsp._jspx_meth_form_005fform_005f0 (student_jsp .java: 117) org.apache.jsp.student_jsp._jspService (student_jsp.java:79) org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70) javax.servlet.http.HttpServlet.service (HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper .java: 41 9) org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:333) javax.servlet.http। HttpServlet.service (HttpServlet.java:722)

यह मेरा web.xml फ़ाइल है

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 


    <display-name>Spring MVC Form Handling</display-name> 
    <welcome-file-list> 
    <welcome-file>student.jsp</welcome-file> 
    </welcome-file-list> 

    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 


    <servlet> 
     <servlet-name>HelloWeb</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/HelloWeb-Servlet.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloWeb</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

</web-app> 

यह मेरा applicationContext.xml फ़ाइल

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 

    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <context:component-scan base-package="com.Prime" /> 
<mvc:annotation-driven/> 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/JSP/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 



</beans> 

मेरी student.jsp फ़ाइल

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<html> 
<head> 
    <title>Spring MVC Form Handling</title> 
</head> 
<body> 

<h2>Student Information</h2> 
<form:form modelAttribute="SpringWeb" method="POST" action="/HelloWeb/addStudent" commandName="SpringWeb"> 
    <table> 
    <tr> 
     <td><form:label path="name">Name</form:label></td> 
     <td><form:input path="name" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="age">Age</form:label></td> 
     <td><form:input path="age" /></td> 
    </tr> 
    <tr> 
     <td><form:label path="id">id</form:label></td> 
     <td><form:input path="id" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <input type="submit" value="Submit"/> 
     </td> 
    </tr> 
</table> 
</form:form> 
</body> 
</html> 

यह है और ये मेरे StudentController है।जावा फ़ाइल

package com.Prime; 

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 org.springframework.web.servlet.ModelAndView; 
import org.springframework.ui.ModelMap; 

@Controller 
public class StudentController { 

    @RequestMapping(value = "/student", method = RequestMethod.GET) 
    public ModelAndView student() { 
     return new ModelAndView("/student.jsp", "SpringWeb", new Student()); 
    } 

    @RequestMapping(value = "/addStudent", method = RequestMethod.POST) 
    public String addStudent(@ModelAttribute("SpringWeb")Student student, 
    ModelMap model) { 
     model.addAttribute("name", student.getName()); 
     model.addAttribute("age", student.getAge()); 
     model.addAttribute("id", student.getId()); 

     return "result"; 
    } 
} 

किसी को भी मुझे इस त्रुटि के साथ मदद कर सकते हैं .... अग्रिम धन्यवाद

उत्तर

3

मैंने आपकी कॉन्फ़िगरेशन की कोशिश की और मुझे आपकी त्रुटि नहीं मिली। लेकिन मुझे कुछ बदलना पड़ा।

दृश्य रिसेल्वर आपके दृश्य नाम में .jsp जोड़ रहा है। तो IMHO आप

return new ModelAndView("student", "SpringWeb", new Student()); 

को

return new ModelAndView("/student.jsp", "SpringWeb", new Student()); 

बदलना चाहिए तो jsp हटाने और छात्र "/" से पहले।

फिर यह मेरे लिए काम किया। लेकिन जैसा कि मैंने कहा मैं अपने त्रुटि मिलती फ्लॉप

+0

वही कोड जो मैं उपयोग कर रहा हूं लेकिन त्रुटि हल नहीं हो रही है ... मुझे भी वही त्रुटि मिल रही है। क्या कोई मेरी मदद कर सकता है? – Brain

3

संपादित करें:

यह भाइयों ने मुझे कि आपके अपवाद कहा गया है "सेम नाम 'कमांड' "। मुझे लगता है कि आपके पास कुछ डिलीवरी समस्या है, क्योंकि आपके द्वारा यहां पोस्ट किया गया कोड अपवाद से मेल नहीं खाता है।


आपके प्रपत्र टैग से commandName विशेषता निकालें, modelAttribute विशेषता enought है:

<form:form modelAttribute="SpringWeb" method="POST" action="/HelloWeb/addStudent" > 

इस article पढ़ने के बाद, यह seams कि यह आपकी समस्या के लिए समाधान नहीं है, लेकिन फिर भी आप करते हैं उन्हें दो बार निर्दिष्ट करने की आवश्यकता नहीं है।

+0

बस अनुमान लगाया जा सकता है कि 'कमांडनाम' और 'मॉडल एट्रिब्यूट' दोनों की उपस्थिति के कारण किसी भी ऑब्जेक्ट और टैगलिब को डिफ़ॉल्ट मॉडल मानने के लिए बाध्य नहीं किया गया है जिसका नाम 'कमांड' है। – xyz

0

jsp स्थान /student करने के लिए कॉल की तलाश में है

/WEB-INF/JSP//student.jsp.jsp 

बदलें विन्यास उचित यूआरएल मैच के लिए है।