|Home |Login |Registration |Struts Step by Step Tutorial |Hibernate Step by Step Tutorial |Spring Step by Step Tutorial |JSP Step by Step Tutorial |JDBC Step by Step Tutorial |Web Services Step by Step Tutorial |EJB fundamentals | ORACLE Step by Step Tutorial
Java mock test | SCJP mock test | SCJP DUMP | SCBCD mock test | SCWCD mock test | JSP mock test | ORACLE mock test | OCP mock test | Hibernate mock test | Servlet mock test | Struts mock test | EJB mock test | C mock test | C++ mock test | Aptitude mock test |Java online test | JSP online test | ORACLE online test | Hibernate online test | Servlet online test | Struts online test | EJB online test | C online test | C++ online test | Aptitude online test
***Java Code Examples*** |Technical Talk
Java interview questions | JSP interview questions | ORACLE interview questions | Hibernate interview questions | Servlet interview questions | Struts interview questions | JDBC interview questions | C/C++ interview questions | Spring interview questions | JMS interview questions | Informatica interview questions | EJB interview questions | OOPS and Design Pattern interview questions
Student Live Projects >>> Tech Talk >>>
                                                                                                                                 
Tutorial Home
Struts Tutorial Home
Spring Tutorial Home
Hibernate Tutorial Home
JSP Tutorial Home
JDBC Tutorial Home
Webservices Tutorial Home
EJB Fundamentals

Hibernate

  1. Advantage of Hibernate over JDBC
  2. Hibernate Setup with an web Application
  3. First Hibernate Application
  4. Hibernate mapping with Database TABLE
  5. Hibernate Data Type-Java Data Type - SQL Data Type mapping
  6. One to Many Relation in Hibernate
  7. One to Many Relation in Hibernate bi-directional
  8. Many to Many Relation in Hibernate
  9. HQL: The Hibernate Query Language
  10. Criteria Queries
  11. Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results
  12. Criteria Queries: And OR conditions
  13. Hibernate generator to generate id (primary key)
  14. prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate

    Struts


  1. Model View Controller (MVC)
  2. Model View Controller (MVC)
  3. Struts Flow-How Struts Works?
  4. Struts Tutorial - Struts Setup- First Struts Action class setup
  5. Message Resources
  6. Validation Framework
  7. Validation Framework-client side
  8. ForwardAction
  9. IncludeAction
  10. DispatchAction
  11. LookupDispatchAction
  12. DynaActionForm
  13. DynaActionForm
  14. Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission
  15. Logic Iterate Map and List

JSP


  1. JSP Tutorial
  2. Introduction to JSP
  3. JSP Comments
  4. JSP Syntax
  5. JSP Scripting Elements :Scriptlet, expression, declaration
  6. JSP Directives
  7. implicit objects in JSP
  8. JSP Actions
  9. Introduction to JSP
  10. jsp:useBean
  11. The jsp:setProperty Action
  12. The jsp:getProperty Action
  13. Introduction to JSP

Spring


  1. Spring Tutorial
  2. Introduction to Spring
  3. Benefits of Using Spring Framework
  4. Inversion of Control in Spring
  5. Introduction to BeanFactory
  6. Dependency Injection in Spring
  7. Collections Setter Injection
  8. Bean Scopes in Spring
  9. Spring IOC Setup Step by Step
  10. Bean Lifecycle in Spring
  11. ApplicationContext
  12. MessageSources in Spring
  13. Web Spring MVC framework
  14. Developing Your First Spring Web Application
  15. Developing Your Second Spring Web Application with Spring Form
  16. Developing Your First Spring Web Application with Spring Validation Framework with Code Example
  17. Spring integration with Hibernate

Spring Tutorial Step by Step


Developing Your Second Spring Web Application with Spring Form

Here is the steps how to setup Your First Spring Web Application with Spring Validation Framework with Code Example

You can download the code with zip..springvalidation.zip Code is ready..just download and run in tomcat.. Click donate button



Steps to run the downloded code :
step 1. unzip the downloaded zip file to D:\tomcat\webapps\ directory.
step 2. D:\tomcat\bin > stratup.bat
step 3. Go to browser and type the URL : http://localhost:8081/springvalidation/test/logonPage.do

step 4. Don't Enter username and password and submit the "submit" button.

step 5. Now Enter username and don't enter password and submit the "submit" button.

step 6. Now Enter username and password both and submit the "submit" button. You will redirect to success page

Flow In Spring


Step a. if your URL is http://localhost:8081/springvalidation/test/logonPage.do
The "/test/logonPage.do" call the formBackingObject(HttpServletRequest request) of the mentioned controller.
In our case LogonController (This is mapped in test-servlet.xml of this application).
formBackingObject(HttpServletRequest request) method set the FormBean with the default value. You can sent any value.
and get the formView property from the test-servlet.xml and forward to the mentioned JSP.
In our case (<property name="formView"><value>logonForm</value></property>);
So it forwared to logonForm.jsp . Name should be same JSP and formView property.


Step b. The JSP page fills in the form fields with the information in the "command" object.
The JSP page fills in the form fields with the information in the "command" object.
In our case "command" object is userBean
<property name="commandName"><value>userBean</value></property>
<property name="commandClass"><value>com.UserBean</value></property>
When the form is submitted, the details are passed to the Validator servlet bean for validation.
In our case "logonFormValidator"
<property name="validator"><ref bean="logonFormValidator"/></property>


Step c. This checks the form data for errors. If there are no errors, it returns control directly to the Controller servlet bean. onSubmit() method of LogonController


Step d. If there were errors in the form, then the Validator servlet bean calls the JSP page again. This time, the "command" object contains the data previously entered by the user, so the JSP page fills in the form fields exactly as before.


Here is the code Explanation

Step 1. Set the DispatcherServlet in web.xml

DispatcherServlet


DispatcherServlet a central servlet that dispatches requests to controllers and offers other functionality facilitating the development of web applications. DispatcherServlet completely integrated with the Spring IoC container and allows you to use every other feature that Spring has.
The DispatcherServlet is an Servlet declared in the web.xml.
Consider the following DispatcherServlet servlet configuration (in the web.xml file.)
<web-app> <servlet>
<servlet-name>test</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
With the above servlet configuration , you will need to have a file called '/WEB-INF/test-servlet.xml' in your application.

Step 2. test-servlet.xml file

test-servlet.xml file contains viewResolver , Handler mappings and Controllers.
viewResolver :
All controllers in the Spring Web MVC framework return a ModelAndView instance. Views in Spring are addressed by a view name and are resolved by a view resolver. For Example : if your controller return new ModelAndView("success"); means control forwared to "/WEB-INF/jsp/success.jsp" based on below configuration.
When returning "success" as a viewname, this view resolver will hand the request over to the RequestDispatcher that will send the request to /WEB-INF/jsp/success.jsp.

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
SimpleUrlHandlerMapping:
The "/test/logonPage.do" call the logonController.
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/test/logonPage.do"><ref bean="logonController"/></entry>
</map>
</property>
</bean>
Controllers :
<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>
In the above configuation

<property name="sessionForm"><value>true</value></property>
Keep command object throughout session
validator:
<bean id="logonFormValidator" class="com.LogonFormValidator"/>

Step 3. Controller classe

"/test/logonPage.do" call the formBackingObject(HttpServletRequest request) of the controller.
formBackingObject(HttpServletRequest request) method set the FormBean with the default value. This method is used to display the form.
And onSubmit() method will be called after click on submit button of the form.
LogonController.java
package com;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;


public class LogonController extends SimpleFormController{

public Object formBackingObject(HttpServletRequest request) throws ServletException
{
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");
}



}

Step 4. Validator classe

Validator class need to implement Validator interface .It only has two methods. The supports() method is used to check whether the validator supports a given class, and the validate() method is used to actually validate an object of the supported class.
LogonFormValidator.java
package com;

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;


public class LogonFormValidator implements Validator{

public boolean supports(Class clazz) {
return clazz.equals(UserBean.class);
}

public void validate(Object obj, Errors errors) {
UserBean user = (UserBean) obj;
if (user == null) {
errors.rejectValue("username", "error.login.not-specified", null,"Value required.");
} else {


if (user.getUserName()== null || user.getUserName().trim().length() <= 0) {
System.out.println("user name null value");
errors.rejectValue("userName", "error.login.invalid-user",
null, "Username is Required.");
} else {
if (user.getPassword()== null || user.getPassword().trim().length() <= 0) {
errors.rejectValue("password", "error.login.invalid-pass",
null, "Password is Required.");
}
}

}
}
}



Step 5. Bean classe

UserBean.java
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;
}
}



Step 6. JSP code logonForm.jsp and success.jsp

In the JSP page you have to bind <spring:bind path="userBean.userName">
where userBean = commandName in the test-servlet.xml
userName = field name in the com.UserBean class.
logonForm.jsp

<%@ taglib prefix="core" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ taglib prefix="str" uri="http://jakarta.apache.org/taglibs/string-1.1" %>
<%@ taglib prefix="spring" uri="/spring" %>


<html>
<head><title>techfaq360 Spring Validation Example</title></head>
<body>

<center>

<h1>techfaq360 Spring Validation Example</h1>
<br/>

<form method="post" action="/springvalidation/test/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="<core:out value="${status.value}"/>"/>
</spring:bind>
</td>

</tr>
<tr>
<td colspan="2" align="center">
<spring:hasBindErrors name="userBean">
<font color="red"><core: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"><core: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>


succes.jsp
<h2>Logon Success </h2>
The information you are posting should be related to java and ORACLE technology. Not political. Your Ad Here