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-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-
Step 10: These are the steps to run simple MVC MultiActionController example.
Get the source code from this link
DOWNLOAD SOURCE CODE