Struts2——拦截器——Alias Interceptor

来源:互联网 发布:手机格式化的数据恢复 编辑:程序博客网 时间:2024/06/04 01:18

参考官方文档: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都赋值了。



原创粉丝点击