<s:action>标签
id:指定被调用Action引用的ID
name:指定被调用的Action的名字
namespace:指定Action所在的命名空间
executeResult:指定是否将Action处理的结果返回到当前页面中,默认值是false,不包含
ignoreContextParams:指定当前页面的数据是否需要传给被调用的Action,默认值是false,即将页面中的参数传给被调用的Action
默认情况下:不返回结果,但传递参数
ActionTagAction.java
package actionTag;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ActionTagAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute(){
return SUCCESS;
}
public String login(){
ServletActionContext.getRequest().setAttribute("name", getName());
return SUCCESS;
}
}
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>executesuccess</title>
</head>
<body>
<h1>调用Action!</h1>
</body>
</html>
loginsuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>loginsuccess</title>
</head>
<body>
<s:property value="#request.name"/> 登录成功
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="actiontag" extends="struts-default">
<!-- 调用execute方法 -->
<action name="tag1" class="actionTag.ActionTagAction">
<result name="success">/success.jsp</result>
</action>
<!-- 调用login方法 -->
<action name="tag2" class="actionTag.ActionTagAction" method="login">
<result name="success">/loginsuccess.jsp</result>
</action>
</package>
</struts>
actiontag.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>action标签</title>
</head>
<body>
下面调用第一个action,并将结果包含在本页面中。
<br>
<s:action name="tag1" executeResult="true"></s:action>
<hr>
下面调用第二个action,并将结果包含到本页面中,阻止当前页面的参数参入action
<br>
<s:action name="tag2" executeResult="true" ignoreContextParams="true"></s:action>
<hr>
下面调用第二个action,不将结果包含在本页面中,但接受当前页面的参数传入action(默认情况)
<br>
<s:action name="tag2" ></s:action>
为了可以看见把参数已经传入action:
<s:action name="tag2" executeResult="true" ></s:action>
</body>
</html>