Wednesday, September 14, 2011

Spring MVC MultiActionController - simple login application

Hello All,

Here i am posting simple Spring MVC example with IOC(setter , Constructor Injection).

Follow the steps to execute the program in your eclipse.

Step1 : Open Eclipse - Create new Dynamic Web Project

Step2 : After creating Project, open web.xml which is there inside created project.

edit Web.xml and add the below 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>spring-features</display-name>

<servlet>
<servlet-name>springweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springweb</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

</web-app>


Step 3: As per above web.xml code- the servlet name as springweb so As per spring mvc we have to create xml file called springweb-servlet.xml under WEB-INF






Step 4: Inside springweb-servlet.xml , we have to put configuration details for the controller's, jsp pages., IOC information. as mentioned below.







<?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.xsd;





<!-- no 'id' required, HandlerMapping beans are automatically detected by the DispatcherServlet -->





<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">



<property name="mappings">



<props>



<prop key="login.htm">loginController</prop>



<prop key="success.htm">loginController</prop>



</props>



</property>



</bean>




<bean id="loginController" class="com.siva.controller.LoginController">



<property name="name" value="siva"/>



<property name="age" value="27"/>



<constructor-arg type="int" value="27"/>



<constructor-arg type="java.lang.String" value="raju"/>



</bean>



<bean id="jspViewResolver" 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>



</beans>




Step 5: Create LoginForm.java inside src folder- under any package





package com.siva.form;
import java.io.Serializable;
public class LoginForm implements Serializable {




private static final long serialVersionUID = 1L;
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}







Step 6: Create LoginController which extends MultiActionController,





package com.siva.controller;




import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import com.siva.form.LoginForm;




public class LoginController extends MultiActionController {




public LoginForm loginForm;
private String name;
private String age;




public LoginController(){
}




//This is constructor type setting in IOC - Check on springweb-servlet.xml for further reference.
//If you are still confusing the Study IOC basics.




public LoginController (String name1 , int age1)
{
System.out.println("Name------" + name1);
System.out.println("Age------" + age1);
}




/**
* This method has been called when ever the user enter login.htm under project.
* In this GetName, getAge methods are one way of IOC through set methods. We set the values
* in springweb-servlet.xml as a property and value. So when ever we called respective get methods
* we will get the results from the springweb-servlet.xml.
*/




public ModelAndView login(HttpServletRequest request, HttpServletResponse response, LoginForm form) {




ModelAndView mav = new ModelAndView();
System.out.println("Name for the set IOC " + getName());
System.out.println("Age for the set IOC " + getAge());
mav.addObject("loginForm",form);
mav.addObject("login");
return mav;
}




/**
* This method also will after enter the username and password in login page.
* It will check whether user name is 'siva' and password is 'raju'. if it's true then
* it will redirect to the success page. otherwise it will remain in the same page
*/




public ModelAndView success(HttpServletRequest request, HttpServletResponse response, LoginForm form){
ModelAndView mav = new ModelAndView();
//User Enter name and password
System.out.println("UserName----" + form.getUserName());
System.out.println("Password-----" + form.getPassword());




// Injected name and age through IOC
System.out.println("Name for the set IOC " + getName());
System.out.println("Age for the set IOC " + getAge());
mav.addObject("loginForm",form);
if(form.getUserName() != null && form.getUserName().equalsIgnoreCase("siva") &&
form.getPassword() != null && form.getPassword().equalsIgnoreCase("raju")) {
mav.setViewName("success");
}
else{
mav.setViewName("login");
}
return mav;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}
}







Step 7 : Create login.jsp, success.jsp . Place these 2 jsp pages under WEB-INF/jsp/




login.jsp




<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<html>
<body>



<form:form commandName="loginForm" id="loginForm"



action="success.htm" method="POST" >



Username <form:input path="userName"/> </br>



Password <form:input path="password"/></br> <



input type="submit" value="Login"/>



</form:form>



</body>



</html>







success.jsp




success







Step 8: Add required jar's

commons-beanutils-1.7.0.jar
commons-digester-1.8.jar
commons-lang-2.4.jar

commons-logging-1.1.1.jar

commons-pool-1.3.jar

commons-validator-1.3.1.jar

j2ee.jar

jstl-1.1.0.jar

log4j-1.2.15.jar

spring-2.5.6.jar

spring-beans.jar

spring-context.jar

spring-modules-validation.jar

spring-security-core-2.0.4.jar

spring-web.jar

spring-webmvc.jar

standard.jar


all the above jar's can be used to run the application.

Step 9: Now right click on the project- Run As - Run on Server-

select the appropriate server, and run the application.

Step 10: These are the steps to run simple MVC MultiActionController example.



Get the source code from this link
DOWNLOAD SOURCE CODE

AddToAny

Contact Form

Name

Email *

Message *