Tuesday, April 26, 2011

Struts 2.0 Installation Tutorial

This is a very basic tutorial for the installation of Struts 2.0. This tutorial is intended for newbies and beginners.




  1. First of all download Struts 2.0 at http://apache.mirrors.pair.com//struts/binaries/struts-2.2.1.1-all.zip
  2. Unzip to a folder.
  3. Go to lib folder in it. Copy the following jars and add those to the lib folder in your project as shown in the figure. The jars to be copied are as under.

    1) commons-fileupload-1.2.1.jar
    2) commons-io-1.3.2.jar
    3) freemarker-2.3.16.jar
    4) ognl-3.0.jar
    5) struts2-core-2.2.1.1.jar
    6) xwork-core-2.2.1.1.jar 

  4.  Also make sure that your project contains javassist-3.7.ga.jar. If not, you can download it from here http://mirrors.ibiblio.org/pub/mirrors/maven2/jboss/javassist/3.7.ga/javassist-3.7.ga.jar
  5. Open web.xml and paste the following lines to it.
    <?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_4.xsd">


    <display-name>Struts Blank</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>index.jsp</welcome-file>
    </welcome-file-list>


    </web-app>
  6. Make a file named struts.xml and place it at the root of the src folder as shown in figure. Copy the following lines to it.
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">


    <struts>
    <package name="default" namespace="/" extends="struts-default">
    <default-action-ref name="index" />
    <action name="view" class="com.soft.struts.actions.ExampleAction" method="execute">
    <result name="view" >view.jsp</result>
    </action>
    </package>


    <!-- Add packages here -->


    </struts>
  7. I have named the action as view. Now we need to make a class named com.soft.struts.actions.ExampleAction.java and a jsp file named view.jsp. So make a package named com.soft.struts.actions.
  8. Create a class named ExampleAction.java and copy the following lines of code to it.

    package com.soft.struts.actions;
    import com.opensymphony.xwork2.ActionSupport;
    public class ExampleAction extends ActionSupport {
    private String message;
    public String execute() throws Exception {
    message="Hello World";
    return "view";
    }
    public String getMessage() {
    return message;
    }
    public void setMessage(String message) {
    this.message = message;
    }
    }

    The action class should always extend com.opensymphony.xwork2.ActionSupport
  9. Now, make a jsp page named view.jsp at the root of the webRoot folder and copy these lines of code.
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <html>
    <head>
    </head>
    <body>
    <s:property value="message"/>
    </body>
    </html>

    To use struts tags we must always have this line in our jsps
    <%@ taglib prefix="s" uri="/struts-tags" %>
  10. Now, we need to make a link to the view.action. So make a jsp named index.jsp, place it at the root of webRoot and copy the following lines to it.
    <html>
    <head>
    <title>index.jsp</title>
    </head>
    <body>
    <a href="view.action">Test the struts action.</a>
    </body>
    </html>
  11. That is it. Now make a war file of it and deploy it to a tomcat server. When you visit index.jsp, you will see a link, click on that link and it will take you to the view.action.

This simple application declares a string named message(getters and setters are necessary) in class ExampleAction.java and shows it on view.jsp through the struts tag <s:property value="message"/>.

Hope it helps someone.

5 comments:

  1. Many thanks for such a reader-friendly tutorial. This is much helpful

    ReplyDelete
  2. very informaive help me alot. appreciate the work keep good work continue

    ReplyDelete