-
Jan 30th, 2009, 03:26 AM
#1
Problem with formBackingObject
AM trying to use the <spring:bind path="" /> in my jsp
In mY jsp am getting
24: <tr>
25: <td width="33%" align="right">Username: </td>
26: <td width="66%" align="left">
27: <spring:bind path="userBean.userName">
28: <input type="text"
29: name="userName"
30: value="<c:out value="${status.value}"/>"/>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
In server side am getting
EVERE: Neither Errors instance nor plain target object for bean name 'userBean' available as request attribute
javax.servlet.jsp.JspTagException: Neither Errors instance nor plain target object for bean name 'userBean' available as request attribute
at org.springframework.web.servlet.tags.BindTag.doSta rtTagInternal(BindTag.java:118)
at org.springframework.web.servlet.tags.RequestContex tAwareTag.doStartTag(RequestContextAwareTag.java:7 7)
at org.apache.jsp.jsp.logonForm_jsp._jspService(logon Form_jsp.java:91)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Jan 30, 2009 2:17:27 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
logonForm.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
<head><title>techfaq360 Spring Validation Example</title></head>
<body>
<center>
<h1>techfaq360 Spring Validation Example</h1>
<br/>
<form name="logonForm" method="post" action="logonPage.do">
<table width="25%" border="1">
<tr>
<td align="center" bgcolor="lightblue">Log on</td>
</tr>
<tr>
<td>
<table border="0" width="100%">
<tr>
<td width="33%" align="right">Username: </td>
<td width="66%" align="left">
<spring:bind path="userBean.userName">
<input type="text"
name="userName"
value="<c:out value="${status.value}"/>"/>
</spring:bind>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<spring:hasBindErrors name="userBean">
<font color="red"><c:out value="${status.errorMessage}"/></font>
</spring:hasBindErrors>
</td>
</tr>
<tr>
<td width="33%" align="right">Password: </td>
<td width="66%" align="left">
<spring:bind path="userBean.password">
<input type="password" name="password" />
</spring:bind>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<spring:hasBindErrors name="userBean">
<font color="red"><c:out value="${status.errorMessage}"/></font>
</spring:hasBindErrors>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" alignment="center" value="Submit">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
test-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="logonFormValidator" class="com.LogonFormValidator"/>
<bean id="logonController" class="com.LogonController">
<property name="sessionForm"><value>true</value></property>
<property name="commandName"><value>userBean</value></property>
<property name="commandClass"><value>com.UserBean</value></property>
<property name="validator"><ref bean="logonFormValidator"/></property>
<property name="formView"><value>logonForm</value></property>
<property name="successView"><value>success</value></property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.Sim pleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/logonPage.do"><ref bean="logonController"/></entry>
</map>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.Intern alResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlVi ew"/>
<property name="prefix" value="jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
controller class
package com;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.BaseCommandCon troller;
import org.springframework.web.servlet.mvc.SimpleFormCont roller;
public class LogonController extends SimpleFormController{
public LogonController(){
System.out.println("initializing the form controller");
}
public Object formBackingObject(HttpServletRequest request) throws ServletException
{
// BaseCommandController.setCommandName(java.lang.Str ing);
UserBean backingObject = new UserBean();
System.out.println("formBackingObject");
/* The backing object should be set up here, with data for the initial values
* of the form’s fields. This could either be hard-coded, or retrieved from a
* database.
*/
return backingObject;
}
public ModelAndView onSubmit(Object command) throws ServletException {
UserBean user = (UserBean)command;
System.out.println("username :"+user.getUserName());
System.out.println("password :"+user.getPassword());
//Now you can validate to database
return new ModelAndView("succes");
}
}
Bean class
package com;
public class UserBean {
String userName;
String password;
/**
* @return Returns the password.
*/
public String getPassword() {
return password;
}
/**
* @param password The password to set.
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return Returns the userName.
*/
public String getUserName() {
return userName;
}
/**
* @param userName The userName to set.
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
Am correctly mapping the command name and spring bind name.Still am getting the above exception.
When actually the formbackObject method will invoke
While rendering form or while building xml during server start up or while giving request ?
while the rendering the from itself am getting the exception.
I tried gooling it but am not able to resolve this problem.
Please help me..
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules