<div dir="ltr" style="text-align: justify;" trbidi="on">
<div dir="ltr" style="text-align: justify;" trbidi="on">In this tutorial, we are going to describe the action tag. The action tag is a generic tag that is used to call actions directly from a JSP page by specifying the action name and an optional namespace. The body content of the tag is used to render the results from the Action. Any result processor defined for this action in struts.xml will be ignored, unless the executeResult parameter is specified.</p>
<p> The action tag allows the programmers to execute an action from the view page. They can achieve this by specifying the action name. They can set the &#8220;<b>executeResult</b>&#8221; parameter to &#8220;true&#8221; to render the result directly in the view. Or, they can set this parameter to &#8220;false&#8221;, but make use of the request attributes exposed by the action method.</p>
<p> <b>Create action class:</b></p>
<pre class="highlight" name="code">package com.dineshonjava.struts2.action; 
 
import com.opensymphony.xwork2.ActionSupport; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class DataTagAction extends ActionSupport { 
 
 private static final long serialVersionUID = -7744420104547018874L; 
 
 private String userName; 
 
 public String execute() { 
 return SUCCESS; 
 } 
public String sayHello() { 
 return SUCCESS; 
} 
 public String getUserName() { 
 return userName; 
 } 
 
 public void setUserName(String userName) { 
 this.userName = userName; 
 } 
 
} 
</pre>
<div align='center' id="ads-id"></div>
<p><b>Create views</b><br />
Let us have<i><b> index.jsp</b></i> to demonstrate the use of the generator tag:</p>
<pre class="highlight" name="code"><;%@ page contentType="text/html; charset=UTF-8"%>; 
<;%@ taglib prefix="s" uri="/struts-tags"%>; 
<;html>; 
<;head>; 
<;title>;Generator Control Tag in Struts2 | dineshonjava.com<;/title>; 
<;/head>; 
 
<;body>; 
<;h2>;Action Data Tag Struts2<;/h2>; 
<;h3>;The User Name:<;/h3>; 
<;s:generator val="%{'Dinesh,Sweety,Anamika, 
 Aadesh,Vinesh,Ankit,Honey '}" count="7" 
 separator=",">; 
 <;s:iterator>; 
 <;s:property />;<;br/>; 
 <;/s:iterator>; 
<;/s:generator>; 
<;/body>; 
<;/html>; 
</pre>
<p>
Next let us have <i><b>success.jsp</b></i> with the following content:</p>
<pre class="highlight" name="code"><;%@ page contentType="text/html; charset=UTF-8"%>; 
<;%@ taglib prefix="s" uri="/struts-tags"%>; 
<;html>; 
<;head>; 
<;title>;Action Data Tag Struts2 | dineshonjava.com<;/title>; 
<;/head>; 
<;body>; 
 <;h2>;Action Data Tag Struts2<;/h2>; 
 <;s:action name="hello" executeResult="true">; 
 Say Hello To: <;br />; 
 <;/s:action>; 
<;/body>; 
<;/html>; 
</pre>
<p>
<b>Configuration Files</b><br />
<b>struts.xml</b></p>
<pre class="highlight" name="code"><;?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.enable.DynamicMethodInvocation" value="false" />; 
 <;constant name="struts.devMode" value="false" />; 
 <;constant name="struts.custom.i18n.resources" value="myapp" />; 
 
 <;package name="default" extends="struts-default" namespace="/">; 
 <;action name="hello" class="com.dineshonjava.struts2.action.DataTagAction" method="sayHello">; 
 <;result name="success">;/success.jsp<;/result>; 
 <;/action>; 
 <;action name="actiontag" class="com.dineshonjava.struts2.action.DataTagAction">; 
 <;result name="success">;/success.jsp<;/result>; 
 <;/action>; 
 <;/package>; 
 <;/struts>; 
</pre>
<p>
<i><b>web.xml</b></i></p>
<pre class="highlight" name="code"><;?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">; 
 <;display-name>;Struts2DataTag<;/display-name>; 
 <;filter>; 
 <;filter-name>;struts2<;/filter-name>; 
 <;filter-class>; 
 org.apache.struts2.dispatcher.FilterDispatcher 
 <;/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>; 
</pre>
<p>
Right click on the project name and click <b>Export >; WAR</b> File to create a War file. Then deploy this WAR in the Tomcat&#8217;s webapps directory. Finally, start Tomcat server and try to access </p>
<p> <b>URL <i>http://localhost:8080/doj/actiontag. </i></b></p>
<p> This will give you following screen:</p>
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://dineshonjava.com/wp-content/uploads/2013/08/2222.png"/></div>
</div>
<p><b>Download SourceCode</b><br />
<b><a href="https://sites.google.com/a/dineshonjava.com/dineshonjava/dineshonjava/ActionDataTag.zip?attredirects=0&;d=1" target="_blank">ActionDataTagExample.zip</a></b></p>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/a-tag-example-in-struts2/">Previous</a> <;<; ; ; || <a href="https://dineshonjava.com/struts-2-baby-step-to-learn/">Index </a>||  ; >;>;<a href="https://dineshonjava.com/struts-2-include-tag-example/">Next</a> >;>;</b></div>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/a-tag-example-in-struts2/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/struts-2-include-tag-example/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '367'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…