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 “executeResult” parameter to “true” to render the result directly in the view. Or, they can set this parameter to “false”, but make use of the request attributes exposed by the action method.
Create action class:
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; } }
Create views
Let us have index.jsp to demonstrate the use of the generator tag:
<%@ 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>
Next let us have success.jsp with the following content:
<%@ 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>
Configuration Files
struts.xml
<?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>
web.xml
<?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>
Right click on the project name and click Export > WAR File to create a War file. Then deploy this WAR in the Tomcat’s webapps directory. Finally, start Tomcat server and try to access
URL http://localhost:8080/doj/actiontag.
This will give you following screen:
Download SourceCode
ActionDataTagExample.zip
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…