Unable to Run Spring Form based application(By using MVC architecture) -
i'm new spring.i have made application named "bookworkshop" using spring-3.1 following mvc architecture.but i'm hitting url:http://localhost:8087/bookworkshop
i'm getting error follows:
org.springframework.beans.typemismatchexception: failed convert property value of type 'java.lang.string' required type 'java.lang.class' property 'commandclass'.
i'm attaching code herewith::
spring servlet class:bookdispatcher-servlet.xml
<?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:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xs"> <bean name="/welcome_book.html" class="com.edifixio.controller.userbookcontroller"/> <bean name="/new_book.html" class="com.edifixio.controller.storebookcontroller"> <property name="commandclass" value="com.edifixio.model.userbook"/> <property name="formview" value="addnewbook"/> <property name="successview" value="/welcome_book.html"/> </bean> <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver" p:viewclass="org.springframework.web.servlet.view.jstlview" p:prefix="/web-inf/pages/" p:suffix=".jsp"/> </beans>
form controller class:::storebookcontroller.java follows
public class storebookcontroller extends simpleformcontroller { @override protected object formbackingobject(httpservletrequest request) throws exception { userbook book = new userbook(0,"enter book name", null, 0); return book; } @override protected map referencedata(httpservletrequest request) throws exception { map<object, object> datamap = new hashmap<object, object>(); publishermanager manager = new publishermanager(); datamap.put("publishierlist", manager.getpublishierlist()); return datamap; } @override protected void initbinder(httpservletrequest request, servletrequestdatabinder databinder) throws exception { databinder.setdisallowedfields(new string[]{"publishier"}); userbook userbook = (userbook) databinder.gettarget(); publishermanager manager = new publishermanager(); long publishierid = null; try { publishierid = long.parselong(request.getparameter("publishier")); } catch (exception e) { } if (publishierid != null) { userbook.setpublisher(manager.getpublishierbyid(publishierid)); } } @override public modelandview onsubmit(object command) throws servletexception { bookmanager bookmanager = new bookmanager(); bookmanager.createbook((userbook) command); return new modelandview(new redirectview(getsuccessview())); } }
then formview page named:::addnewbook.jsp follows---
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="sp" uri="http://www.springframework.org/tags/form"%> <%@page contenttype="text/html" pageencoding="utf-8"%> <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp page</title> </head> <body> <h1>add book</h1> <sp:form method="post"> publisher:<sp:select path="publisher"> <sp:options items="${publisherlist}" itemlabel="publishername" itemvalue="publisherid"/> </sp:select> <br/><br/> book name:<sp:input path="bookname"/> <br/><br/> price:<sp:input path="price"/> <br/><br/> <input type="submit" value="save"/> </sp:form> </body> </html>
finally successview controller class named:userbookcontroller.java follows
public class userbookcontroller implements controller { @override public modelandview handlerequest(httpservletrequest request, httpservletresponse response) throws exception { bookmanager manager = new bookmanager(); modelandview modelandview = new modelandview("booklist"); modelandview.addobject("allbook", manager.createbookcollection()); return modelandview; } }
successview page named:booklist.jsp follows:::
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page contenttype="text/html" pageencoding="utf-8"%> <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp page</title> </head> <body> <h1>book workshop application</h1> <table style="border:2;color:graytext" > <th style="color: background;alignment-adjust: baseline">book name</th> <th style="color: background">price</th> <th style="color: background">publisher</th> <c:foreach items="${allbook}" var="b"> <tr> <td style="color:burlywood">${b.bookname}</td> <td style="color:burlywood">${b.price}</td> <td style="color:burlywood">${b.publisher.publishername}</td> </tr> </c:foreach> </table> </body> </html>
finally web.xml file here:::::::
<?xml version="1.0" encoding="utf-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee /web-app_3_0.xsd"> <welcome-file-list> <welcome-file>/new_book.html</welcome-file> </welcome-file-list> <servlet> <servlet-name>bookdispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>bookdispatcher</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>
can give solution this?????????????
try this:
<property name="commandclass"> <value> com.edifixio.model.userbook </value> </property>
Comments
Post a Comment