Struts 2 action tag example
Struts 2 “action” tag is used to call action class directly from a JSP page. if the “executeResult” attribute is set to true, the content of the result page will be rendered directly in the current page.
This is best illustrated using a complete example :
1. Action
An Action class with few methods to forward the result to different result page.
ParamTagAction.java
package com.mkyong.common.action; import com.opensymphony.xwork2.ActionSupport; public class ActionTagAction extends ActionSupport{ public String execute() { return SUCCESS; } public String sayHello(){ return "sayHello"; } public String sayStruts2(){ return "sayStruts2"; } public String saySysOut(){ System.out.println("SysOut SysOut SysOut"); return "saySysOut"; } }
2. action tag example
JSP pages to show the use of “action” tag. If the executeResult=”true” is specified in the action tag, the method is executed and the result page will be displayed directly; Otherwise, it just execute the method, no result page will be displayed.
action.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>Struts 2 action tag example</h1> <ol> <li> Execute the action's result, render the page here. <s:action name="sayHelloAction" executeResult="true"/> </li> <li> Doing the same as above, but call action's sayStruts2() method. <s:action name="sayHelloAction!sayStruts2" executeResult="true"/> </li> <li> Call the action's saySysOut() method only, no result will be rendered, By defautlt, executeResult="false". <s:action name="sayHelloAction!saySysOut" /> </li> </ol> </body> </html>
sayHello.jsp
<html> <head> </head> <body> <h4>Hello Hello Hello ~ from sayHello.jsp</h4> </body> </html>
sayStruts2.jsp
<html> <head> </head> <body> <h4>Struts 2 Struts 2 Struts 2 ~ from sayStruts2.jsp</h4> </body> </html>
saySysOut.jsp
<html> <head> </head> <body> <h4>SysOut SysOut SysOut ~ from saySysOut.jsp</h4> </body> </html>
3. struts.xml
Declared few result name to demonstrate the executeResult effect.
<?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="default" namespace="/" extends="struts-default"> <action name="actionTagAction" class="com.mkyong.common.action.ActionTagAction" > <result name="success">pages/action.jsp</result> </action> <action name="sayHelloAction" class="com.mkyong.common.action.ActionTagAction" method="sayHello"> <result name="sayHello">sayHello.jsp</result> <result name="sayStruts2">sayStruts2.jsp</result> <result name="saySysOut">saySysOut.jsp</result> </action> </package> </struts>
4. Demo
http://localhost:8080/Struts2Example/actionTagAction.action
Output







