Table of Contents
Tutorial Content:
- Introduction to struts 2
- configuring struts 2 in eclipse
- Struts 2 hello world example
- Login page with validation in struts 2
- Struts 2 interceptors with example
- File upload in struts 2
- Struts 2 ajax example
- Struts 2 spring 3 integration example
lets start with first struts2 application.
Create dynamic web project named “Struts2FirstProject”.For configuring struts 2 in your eclipse ide please refer configuring struts 2 link.
The web.xml file:
The web.xml configuration file is a J2EE configuration file that determines how elements of the HTTP request are processed by the servlet container. It is not strictly a Struts2 configuration file, but it is a file that needs to be configured for Struts2 to work.
As discussed earlier, this file provides an entry point for any web application. The entry point of Struts2 application will be a filter defined in deployment descriptor (web.xml). Hence we will define an entry of FilterDispatcher class in web.xml. The web.xml file needs to be created under the folder WebContent/WEB-INF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" 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_5.xsd"> <display-name>Struts2FirstProject</display-name> <filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> |
Action Class:
Create TutorialAction.java under src.Here we have TutorialAction.java as action class in our project.
1 2 3 4 5 6 7 8 9 10 11 12 |
package org.arpit.javapostsForLearning; public class TutorialAction { public String execute() { String success="success"; return success; } } |
JSP:
1 2 3 4 5 6 7 8 9 10 11 12 |
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" Â Â Â pageEncoding="ISO-8859-1"%> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Struts2 tutorial</title> Hello world!!!This is Struts 2 tutorial |
copy following content into Error.jsp
1 2 3 4 5 6 7 8 9 10 11 12 |
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> Error!!!! |
The struts.xml file:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="UTF-8" ?> <struts> <package name="default" extends="struts-default" namespace="/"> <action name="getTutorial" class="org.arpit.javapostsForLearning.TutorialAction"> <result name="success">TutorialView.jsp</result> <result name="error">Error.jsp</result> </action> </package> </struts> |
- Request(http://localhost:8080/Strut2FirstProject/getTutorial) is generated by client and sent to Servlet container.
- Servlet container invokes FilterDispatcher filter which in turn determines appropriate action.In this project,getTutorial action goes to TutorialAction class.
- In tutorialAction,execute() method is executed and returns “success”
- As per mapping in struts2.xml, name is matched with returned string “success”.
- Accordingly,TutorialView.jsp is rendered and returned to user.
Now finally we will run our project.
right click on project->run as->run on server
so when you paste resultant url to your browser,you will get some thing like this.