Back to: Java Struts Tutorials
Struts 2 Action Tag with Examples
In this article, I am going to discuss Struts 2 Action Tag with Examples. Please read our previous article where we discussed Struts 2 Generator Tag.
What is the Action Tag in Struts 2?
The action tag grants programmers the ability to execute an action from the view page. This can be accomplished by indicating the desired action name. By setting the “executeResult” parameter to “true,” they can directly display the result in the view. Alternatively, if they set this parameter to “false,” they can still utilize the request attributes exposed by the action method.
How to Implement Action Tag in Struts 2?
Step 1: Create a new maven project in Eclipse. We will use Maven to manage the dependencies of struts2. This way, we do not have to import JARs.
Remember to set the packaging to war. This is because we shall be deploying a web application.
Finally, click on the finish button to create the project. The following project directories need to be created:
Step 2: Modify pom.xml to add the required dependencies and the build configuration:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dotnet</groupId> <artifactId>strutex</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>6.1.2.1</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-taglib</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>6.2.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build> </project>
Step 3: In the src/main/webapp directory, create a new file called index.jsp. This file displays the different types of cars on the webpage. Add the following content to the file:
<%@ page contentType = "text/html; charset = UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <html> <head> <title>Type of cars</title> </head> <body> <b>Types of cars:</b><br /> <s:generator val = "%{'Sports,SUV,Coupe,Van,Hatchback,Sedan,Truck'}" count = "7" separator = ","> <s:iterator> <s:property /><br/> </s:iterator> </s:generator> </body> </html>
Step 4: In the src/main/webapp directory, create a new file called success.jsp. This file displays the students on the webpage. Add the following content to the file:
<%@ page contentType = "text/html; charset = UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <html> <head> <title>Students</title> </head> <body> <s:action name = "StudentAction" executeresult = "true"> Output from Hello: <br /> </s:action> </body> </html>
Step 5: In the src/main/java directory, create a new file called HelloWorldAction.java. The file contains the Java action code. Add the following content to the file:
package com.dotnet; import java.util.ArrayList; import java.util.List; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport { private String name; public String execute() { List<String> names = new ArrayList<String>(); names.add("Student A"); names.add("Student B"); names.add("Student C"); ServletActionContext.getRequest().setAttribute("names", names); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Step 6: In the src/main/java directory, create a new file called Student.java. The file contains some more Java action code. Add the following content to the file:
package com.dotnet; import com.opensymphony.xwork2.ActionSupport; public class Student extends ActionSupport { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Step 7: In the src/main/webapp directory, create a new file called struts.xml. This file is responsible for configuring struts2. Add the following content to the file:
<?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> <constant name = "struts.devMode" value = "true" /> <package name = "helloworld" extends = "struts-default"> <action name = "HelloWorldAction" class = "com.dotnet.HelloWorldAction" method = "execute"> <result name = "success">/index.jsp</result> </action> <action name = "StudentAction" class = "com.dotnet.Student" method = "execute"> <result name = "success">/success.jsp</result> </action> </package> </struts>
Step 8: In the src/main/webapp directory, create a new directory called WEB-INF. In this directory, create a new file called web.xml. This file is responsible for implementing struts2 in the web application. Add the following content to the file:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/web-app_3_0.xsd" id="apache-struts-config-example" version="3.0"> <display-name>Struts Config XML</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Step 7: Compile and execute the program on the Tomcat server. The following page must open in your default web browser:
Congratulations! You now know how to implement action tags in struts2!
In the next article, I am going to discuss Struts 2 Bean and Param Tags with Examples. Here, in this article, I try to explain Struts 2 Action Tag with Examples and I hope you enjoy this Struts 2 Action Tag article.