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.
Here is 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)
This is web.xmlCode:<%@ 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> </td> </tr> </table> </form:form> <br> <myTag:comments /> <%@ include file="footer.jsp"%> </body> </html>
This is applicationContext.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 ghs1986-servlet.xmlCode:<?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 com.controller.CommentController.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>
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()); } }


Reply With Quote
