I am putting up my total code here,
loginForm.jsp:
______________
<%@ taglib uri="/spring" prefix="spring" %>
<form method="post" action="login.do">
<spring:bind path="credentials.username">
<input type="text" name="username"/>
</spring:bind>
<br>
<spring:bind path="credentials.password">
<input type="text" name="password"/>
</spring:bind>
<br>
<input type="submit"/>
</form>
web.xml :
_________
<!--web.xml-->
<web-app>
<
servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/ds-servlet.xml</param-value>
</context-param>
<servlet>
<servlet-name>ds</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ds</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
</web-app>
ds-servlet.xml :
_______________
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="Login" class="LoginController">
<property name="sessionForm">
<value>true</value>
</property>
<property name="validator">
<ref bean="LoginCredentialsValidator"/>
</property>
<property name="commandName">
<value>credentials</value>
</property>
<property name="commandClass">
<value>LoginCredentials</value>
</property>
<property name="formView">
<value>/WEB-INF/jsp/loginForm.jsp</value>
</property>
</bean>
<bean id="LoginCredentialsValidator" class="LoginCredentialValidator"/>
<bean id="suhm" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/login.do">
<ref bean="Login"/>
</entry>
</map>
</property>
</bean>
</beans>
LoginCOntroller.java :
______________________
/* LoginController.java */
import javax.servlet.http.*;
import org.springframework.web.servlet.*;
import org.springframework.web.servlet.mvc.*;
public class LoginController extends SimpleFormController {
public ModelAndView onSubmit( Object o)throws Exception
{
System.out.println("onsubmit *******");
LoginCredentials loginCredentials=(LoginCredentials)o;
System.out.println("LoginCOntroller .... "+loginCredentials.getUsername());
return new ModelAndView("/success.jsp","credentials",loginCredentials);
}
protected Object formBackingObject(HttpServletRequest req)
{
System.out.println("formBackingObject*******");
LoginCredentials credentials=new LoginCredentials();
credentials.setUsername("user");
credentials.setPassword("password");
HttpSession ses=req.getSession(false);
req.setAttribute("credentials",credentials);
ses.setAttribute("credentials",credentials);
return credentials;
}
}
LoginCredentials.java :
________________________
/* LoginCredentials.java */
public class LoginCredentials
{
String username,password;
public void setUsername(String username)
{
this.username=username;
}
public String getUsername()
{
return username;
}
public void setPassword(String password)
{
this.password=password;
}
public String getPassword()
{
return password;
}
}
LoginCredentialValidator.java :
________________________________
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
public class LoginCredentialValidator implements Validator
{
LoginCredentials loginCredentials;
public boolean supports(Class c)
{
return LoginCredentials.class.isAssignableFrom(c);
}
public void validate(Object commandObject,Errors errors)
{
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"userName","Field is required");
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"password","Field is required");
loginCredentials=(LoginCredentials)commandObject;
if((loginCredentials.getPassword()!="password") && (loginCredentials.getUsername()!="xyz"))
{
errors.reject("credentials provided are not correctd");
}
}
}