You are on page 1of 4

Struts 1 > Hello World Application

Hello World Application


Lets say a quick hello to struts. Struts follows MVC 2 pattern. The following files are needed to create a hello world application. index.jsp helloWorld.jsp web.xml struts-config.xml HelloWorldAction.java HelloWorldActionForm.java

web.xml

web.xml is used to configure the servlet container properties of the hello world appliation. 1.<welcome-file-list> 2.<welcome-file>index.jsp</welcome-file> 3.</welcome-file-list> The gateway for our hello world application is index.jsp file. The index.jsp file should be mentioned in web.xml as shown above.

index.jsp
In the hello world example the index.jsp page simply forwards the request to the hello world action. 1.<jsp:forward page="HelloWorld.do"/>

struts-config.xml
struts-config.xml file is used to configure the struts framework for the hello world application. This file contains the details regarding the form bean and the action mapping. 01.<struts-config> 02. 03.<form-beans> 04.<form-bean name="HelloWorldActionForm" 05.type="com.vaannila.HelloWorldActionForm"/> 06.</form-beans> 07. 08.<action-mappings> 09.<action input="/index.jsp" name="HelloWorldActionForm"path="/HelloWorld" sco pe="session"type="com.vaannila.HelloWorldAction"> 10.<forward name="success" path="/helloWorld.jsp" /> 11.</action> 12.</action-mappings> 13. 14.</struts-config>

HelloWorldActionForm.java
HelloWorldActionForm extends org.apache.struts.action.ActionForm. HelloWorldActionForm class has one String variable message and the corresponding getter and setter methods. 01.public class HelloWorldActionForm extends 02.org.apache.struts.action.ActionForm { 03. 04.private String message; 05. 06.public HelloWorldActionForm() { 07.super(); 08.} 09. 10.public String getMessage() { 11.return message; 12.}

13. 14.public void setMessage(String message) { 15.this.message = message; 16.} 17. 18.}

HelloWorldAction.java
HelloWorldAction class extends org.apache.struts.action.Action. The action class contains an execute method which contains the business logic of the application. To access the HelloWorldActionForm variables in the Action we need to type caste the form object to HelloWorldActionForm. Then we can access the variables using the getter and setter methods. The execute method returns a value of type ActionForward, based on its value the corresponding view will be called. This configuration is done in struts-config.xml file. 01.public class HelloWorldAction extends org.apache.struts.action.Action { 02. 03.private final static String SUCCESS = "success"; 04. 05.public ActionForward execute(ActionMapping mapping,ActionForm form, 06.HttpServletRequest request,HttpServletResponse response)throws Exception { 07. 08.HelloWorldActionForm helloWorldForm = (HelloWorldActionForm) form; 09.helloWorldForm.setMessage("Hello World!"); 10.return mapping.findForward(SUCCESS); 11. 12.} 13.} 1.<action-mappings> 2.<action input="/index.jsp" name="HelloWorldActionForm"path="/HelloWorld" 3.scope="session" type="com.vaannila.HelloWorldAction"> 4.<forward name="success" path="/helloWorld.jsp" /> 5.</action> 6.</action-mappings> The name "success" is mapped to the view helloWorld.jsp. So when the execute method in the action returns "success" the request will be forwarded to the helloWold.jsp page.

helloWorld.jsp
In helloWorld.jsp we get the value of the form variable message and display it. We use struts bean tag to do this. The name attribute of the bean tag hold the value of the action form and the property attribute holds the value of the variable to be displayed. 01.<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 02.<html> 03.<head> 04.<title>Hello World</title> 05.</head> 06.<body> 07.<h1> 08.<bean:write name="HelloWorldActionForm" property="message" />

09.</h1> 10.</body> 11.</html> Extract the downloaded files into the webapps folder of the Tomcat server. Start the Tomcat server. Type the following url in the browser "http://localhost:8080/Example1/index.jsp". There you go, you have your first struts program up and running.

You can download the source code of the Hello World example by clicking on the Download link below.

You might also like