Struts 2 action tag

<s:action>:

Tha <s:action> tag is used to call the action directly from a jsp page. By default all the results defined in struts.xml for thactsion will be ignored and control will not be transferred to the result. IfexecuteResult attribute is set to true then results defined in struts.xml for thactsion will work and the result page content will be displayed directly in the current page. By default executeResult attribute value is false.

Syntax:

<s:action name="actionName" executeResult="true"/>

Example:

test.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
		<title>Struts 2 s:action data tag example</title>
	</head>
	<body>
		<h3>This is a s:action data tag example.</h3>
 
		<h4>Call userAction action.</h4>
		<s:action name="Test!userAction" executeResult="true"/> 
		<br/>
		<h4>Call adminAction action.</h4>
		<s:action name="Test!adminAction" executeResult="true"/>
 
	</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 
 	<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>test.jsp</welcome-file>
	</welcome-file-list>
 
</web-app>

struts.xml

<!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" extends="struts-default">
		<action name="Test" class="com.w3schools.action.Test">
			<result name="success">/welcome.jsp</result>
			<result name="user">/user.jsp</result>
			<result name="admin">/admin.jsp</result>
		</action>
	</package>
 
</struts>

Test.java

import com.opensymphony.xwork2.ActionSupport;
 
/**
 * This class is used as an action class.
 * @author w3schools
 */
public class Test extends ActionSupport{
 
	public String execute(){
		return SUCCESS;	
	}
 
	public String userAction(){
		return "user";	
	}
 
	public String adminAction(){
		return "admin";	
	}
 
}

admin.jsp

<html>
	<head></head>
	<body>
		<strong><em>Content of admin page.</em></strong>	 
	</body>
</html>

user.jsp

<html>
	<head></head>
	<body>
		<strong><em>Content of user page.</em></strong>	 
	</body>
</html>

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
		<title>Struts 2 s:action data tag example</title>
	</head>
	<body>
		<h3>This is a  s:action data tag example.</h3>
 
		Hello world.
 
	</body>
</html>

Output:

struts 48
 
Download this example.
 
Next Topic: Struts 2 include data tag with example.
Previous Topic: Struts 2 data tags with example.