Struts2——拦截器——Alias Interceptor

参考官方文档:http://struts.apache.org/docs/alias-interceptor.html

别名拦截器 Alias Interceptor

它的作用是:给参数起一个别名,可用于在action链中以不同的名字共享同一个参数,也可用于把http请求参数以不同的名字映射到action里。

 

Action的别名表达式应采用#{ “name1” : ”alias1” , “name2” : “alisa2” }的形式。 这意味着假设一个action(或栈中的其他东西)具有名为name1的表达式的值,并且应用此拦截器的操作具有一个名为alias1的设置器,alias1将使用name1的值进行设置。

 

参数:

aliasesKey,要查找别名映射的action参数的名称(默认值是aliases

 

示例:

<action name="someAction" class="com.examples.SomeAction">

    <!-- The value for the foo parameter will be applied as if it were named bar -->

    <param name="aliases">#{ 'foo' : 'bar' }</param>

    <interceptor-ref name="alias"/>

    <interceptor-ref name="basicStack"/>

    <result name="success">good_result.ftl</result>

</action>


下面通过实例来说明在action链中以不同的名字共享参数

struts.xml

		<action name="student" class="com.zhidisoft.action.StudentAction">
			<param name="aliases">#{'t_id':'s_id'}</param>
			<interceptor-ref name="alias" />
			<interceptor-ref name="basicStack" />
			<result>/index.jsp</result>
		</action>

		<action name="teacher" class="com.zhidisoft.action.TeacherAction">
			<result type="chain">student</result>
		</action>

对应的action类:

com.zhidisoft.action.StudentAction

public class StudentAction extends ActionSupport {

	private String s_id;

	public String execute(){
		return SUCCESS;
	}

	public String getS_id() {
		return s_id;
	}

	public void setS_id(String s_id) {
		this.s_id = s_id;
	}
	
}

com.zhidisoft.action.TeacherAction

public class TeacherAction extends ActionSupport {

	private String t_id;

	public String execute(){
		return SUCCESS;
	}

	public String getT_id() {
		return t_id;
	}

	public void setT_id(String t_id) {
		this.t_id = t_id;
	}
	
}

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML>
<html>
<head>
<title>首页</title>
</head>

<body>
<s:property value="s_id"/>
<s:debug></s:debug>
</body>
</html>

现在访问 http://localhost/Alias/teacher.action?t_id=99 通过Debug可以看到 s_id t_id都赋值了。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值