Announcement Announcement Module
Collapse
No announcement yet.
Spring 3.1 MVC -- BindingResult nor plain target object for bean name not available Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring 3.1 MVC -- BindingResult nor plain target object for bean name not available

    I am a Spring MVC newbie, and I am trying to call up a JSP in my Spring 3.1 MVC application, and I'm getting an error message instead. Can anyone help me? Here is the error message when I call up GuestBook.jsp.

    Code:
    HTTP Status 500 - 
    
    --------------------------------------------------------------------------------
    
    type Exception report
    
    message 
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception 
    
    org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'comment' available as request attribute
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:429)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
    
    root cause 
    
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'comment' available as request attribute
    	org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194)
    	org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java: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.GuestBook_jsp._jspx_meth_form_005flabel_005f0(GuestBook_jsp.java:271)
    	org.apache.jsp.GuestBook_jsp._jspx_meth_form_005fform_005f0(GuestBook_jsp.java:216)
    	org.apache.jsp.GuestBook_jsp._jspService(GuestBook_jsp.java:127)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Here is GuestBook.jsp.
    Code:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
    <%@ taglib prefix="myTag" uri="commentsTag"%>
    <html>
    <head>
    <title>Granada High School Class of 1986 Comment Page</title>
    <style type="text/css">
    p {
    	text-align: justify;
    }
    
    h1 {
    	text-align: center;
    }
    </style>
    </head>
    <body>
    	<h1>Granada High School Class of 1986 Guest Book</h1>
    	<%@ include file="menu.jsp"%><br>
    	<b><font color="red"><c:out value='${confirmation}' /></font></b>
    	<c:remove var="confirmation" scope="session" />
    	<p>This page is a place where you can share memories from high
    		school, what you're doing these days, comments about this web site
    		(good or bad), etc. The comments will appear at the bottom of the
    		page.</p>
    	<form:form method="post" action="GuestBook.jsp" modelAttribute="comment">
    		<table>
    			<tr>
    				<td><form:label path="name">Name</form:label></td>
    				<td><form:input path="name" /></td>
    			</tr>
    			<tr>
    				<td><form:label path="message">Message</form:label></td>
    				<td><form:textarea path="message" rows="10" cols="50" /></td>
    			</tr>
    			<tr>
    				<td><input type="submit" value="Submit comment" /></td>
    				<td>&nbsp;</td>
    			</tr>
    		</table>
    	</form:form>
    	<br>
    	<myTag:comments />
    	<%@ include file="footer.jsp"%>
    </body>
    </html>
    This is web.xml
    Code:
    <?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>Granada High School Class of 1986</display-name>
        <servlet>
            <servlet-name>ghs1986</servlet-name>
            <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>ghs1986</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    	<listener>
    		<listener-class>com.configuration.ConfigurationListener</listener-class>
    	</listener>
    	<listener>
        	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    	
    	<welcome-file-list>
    		<welcome-file>home.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    This is applicationContext.xml.
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:context="http://www.springframework.org/schema/context"
    	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">
    
    	<mvc:annotation-driven />
    
    	<context:component-scan base-package="com.controller" />
    
    </beans>
    This is ghs1986-servlet.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    
    	<bean id="viewResolver"
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="suffix">
    			<value>.jsp</value>
    		</property>
    	</bean>
    	<bean name="comment" class="com.model.Comment" />
    
    	<bean name="/GuestBook.jsp" class="com.controller.CommentController">
    		<property name="comment" ref="comment" />
    	</bean>
    </beans>
    This is com.controller.CommentController.
    Code:
    package com.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    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 com.dao.CommentDAO;
    import com.model.Comment;
    
    @Controller
    @RequestMapping("/GuestBook")
    public class CommentController {
    	Comment comment;
    	
    	public Comment getComment() {
    		return comment;
    	}
    
    	public void setComment(Comment comment) {
    		this.comment = comment;
    	}
    
    	@RequestMapping(value = "/GuestBook", method = RequestMethod.POST)
    	public String addComment(@ModelAttribute("comment") Comment comment, BindingResult result) {
    		CommentDAO commentDAO = new CommentDAO();
    		java.util.Date today = new java.util.Date();
    		java.sql.Date date = new java.sql.Date(today.getTime());
    		comment.setDate(date);
    
    		if (commentDAO.writeComment(comment) == true) {
    			return "redirect:GuestBook.jsp";
    		}
    		
    		return "redirect:Oops.jsp";
    	}
    	
    	@RequestMapping("/showComments")
    	public ModelAndView showComments() {
    		return new ModelAndView("/GuestBook.jsp", "comment", new Comment());
    	}
    }

  • #2
    I am getting help for this on another forum. No need to respond here.

    Comment

    Working...
    X