Struts 2 Guide
This is first example of Struts 2 in this Complete application development tutorial series. You must finish this Struts 2 Guide in day 1 itself. Struts is vast topic and requires hard work to master it. I am going to explain you Struts 2 with "Hello World" example. So, work hard to learn the process of development and deployment of "Hello World" quick Struts 2 guided tutorial.
Example presented here will help you learn Struts 2 easily. Good luck for this lesson!
Step by Step Struts 2 Guide:
In this section you will learn how to develop "Hello World" application in Struts 2. This is your first step towards learning Struts 2. We will follow the following steps to develop the application.
Step 1:
Download the Struts 2.0.11 and extract the download file and copy struts2-blank-2.0.6.war to your tomcats webapps directory. Rename struts2-blank-2.0.6.war to struts2helloworldand unzip it in the tomcats webapps directory. Now start the tomcat and type http://localhost:8080/struts2HelloWorldApplication/ into your browser. You browser should show look like:
Congratulations you have successfully installed struts 2 blank application to start with.
Step 2:
Now delete the content of struts2helloworld\WEB-INF\src and struts2helloworld\WEB-INF\classes directories, as we don't need these files that comes with struts 2 blank application.
Step 3:
Create build.xml file in the struts2helloworld\WEB-INF\src and paste the following content in the build.xml file.
<project name="Struts 2 Tutorial" basedir="../" default="all"> <!-- Project settings --> <property name="project.title" value="RoseIndia Struts 2 Tutorials"/> <property name="project.jar.file" value="struts2tutorial.jar"/> <path id="class.path"> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <fileset dir="libext"> <include name="**/*.jar"/> </fileset> </path> <!-- Classpath for Project --> <path id="compile.classpath"> <pathelement path ="lib/commons-beanutils.jar"/> <pathelement path ="lib/commons-digester.jar"/> <pathelement path ="lib/struts.jar"/> <pathelement path ="libext/servlet-api.jar"/> <pathelement path ="libext/catalina-ant.jar"/> <pathelement path ="classes"/> <pathelement path ="${classpath}"/> </path> <!-- Check timestamp on files --> <target name="prepare"> <tstamp/> <copy file="src/struts.xml" todir="src/classes"/> </target> <!-- Copy any resource or configuration files --> <target name="resources"> <copy todir="src/classes" includeEmptyDirs="no"> <fileset dir="src/java"> <patternset> <include name="**/*.conf"/> <include name="**/*.properties"/> <include name="**/*.xml"/> </patternset> </fileset> </copy> </target> <!-- Normal build of application --> <target name="compile" depends="prepare,resources"> <javac srcdir="src" destdir="src/classes" debug="true" debuglevel="lines,vars,source"> <classpath refid="class.path"/> </javac> <jar jarfile="lib/${project.jar.file}" basedir="src/classes"/> </target> <!-- Remove classes directory for clean build --> <target name="clean" description="Prepare for clean build"> <delete dir="classes"/> <mkdir dir="classes"/> </target> <!-- Build Javadoc documentation --> <target name="javadoc" description="Generate JavaDoc API docs"> <delete dir="./doc/api"/> <mkdir dir="./doc/api"/> <javadoc sourcepath="./src/java" destdir="./doc/api" classpath="${servlet.jar}:${jdbc20ext.jar}" packagenames="*" author="true" private="true" version="true" windowtitle="${project.title} API Documentation" doctitle="<h1>${project.title} Documentation (Version ${project.version})</h1>" bottom="Copyright © 2002"> <classpath refid="compile.classpath"/> </javadoc> </target> <!-- Build entire project --> <target name="project" depends="clean,prepare,compile"/> <!-- Create binary distribution --> <target name="dist" description="Create binary distribution"> <mkdir dir="${distpath.project}"/> <jar jarfile="${distpath.project}/${project.distname}.jar" basedir="./classes"/> <copy file="${distpath.project}/${project.distname}.jar" todir="${distpath.project}"/> <war basedir="../" warfile="${distpath.project}/${project.distname}.war" webxml="web.xml"> <exclude name="${distpath.project}/${project.distname}.war"/> </war> </target> <!-- Build project and create distribution--> <target name="all" depends="project"/> </project>
Step 4:
Create directory libext under the struts2helloworld\WEB-INF\ then you copy latest Servlets api jar (in our case servlet-api.jar) file over there. This library file will be used to compile Servlets in our application.
Step 5:
Now create directories java and classes under struts2helloworld\WEB-INF\src. The directory struts2helloworld\WEB-INF\src\java will be used to put all the java sources file and directory struts2helloworld\WEB-INF\src\classes will be used by ant build utility to store compiled java files.
Now we have successfully created the directory structure and ant build file for our Struts 2 Hello World Application.