This is 3 of 8 part of struts 2 tutorial.It provides struts 2 hello world example.
Tutorial Content:
lets start with first struts2 application.
We will implement modules described in above diagram in our project.
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.
copy following content in web.xml
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:
We will have action class which is simple POJO class having attributes and method.
By default execute() method is called when client request goes to action class.
Create TutorialAction.java under src.Here we have TutorialAction.java as action class in our project.
copy following content into TutorialAction.java
|
package org.arpit.javapostsForLearning; public class TutorialAction { public String execute() { String success="success"; return success; } } |
JSP:
Create two jsp files named “TutorialView.jsp” and “Error.jsp” under WebContent.
copy following content into TutorialView.jsp
|
<%@ 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
|
<%@ 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:
strut2.xml provides mapping between url to action mapping.
So if client enters “http://mywebapp/getTutorial” then Tutorial action will be called.
Create strut2.xml under src folder.
copy following content into struts.xml
|
<?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> |
This diagram describes the request workflow :
- 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.
We are getting this error because we have declared welcome file as “default.jsp” which do not exist.
so if you paste “http://localhost:8080/Strut2FirstProject/getTutorial” you will get your output as
as we included action(getTutorial) in url,It rendered “tutorialView.jsp” as output.
Source code: