Struts配置文件编写小结

一个 package内的结构

​ package标签的书写格式与命名属性

<package name="package的名字" extends="struts-default" namespace="默认值是/">
</package>

​ action标签在package中可以有多个,它内部可以配置result标签和拦截器 interceptor

<package name="package的名字" extends="struts-default" namespace="默认值是/">
    <action name="action的名字,未来与namespace一起书写在地址栏中" 
            calss="action的全限定名"
            method="在DMI开发模式中使用,制定当次请求调用方法的名字"
        
    </action>
</package>

​ result标签写在action中,用于指定跳转的页面,一个action可以有多个result标签

<!--跳转类型分为
action到action	
			请求转发:type="chain"  请求重定向:="redirectAction"
action到jsp
			请求转发: 默认:type="request" 请求重定向:="redirect"
-->
<package name="package的名字" extends="struts-default" namespace="默认值是/">
    <action name="action的名字,未来与namespace一起书写在地址栏中" 
            calss="action的全限定名"
            method="在DMI开发模式中使用,制定当次请求调用方法的名字">
        <result name="书写在action中的返回值" type="跳转类型">
    			
    		</result>       
    </action>
</package>

​ 如果多个action中有相同的result时可以把这个result写在全局配置中

<!--
	全局跳转标签写在action标签的上方
-->
<package name="package的名字" extends="struts-default" namespace="默认值是/">
    <global-results>
        	 <result name="书写在action中的返回值" type="跳转类型">
    </global-results>
    <action name="action的名字,未来与namespace一起书写在地址栏中" 
            calss="action的全限定名"
            method="在DMI开发模式中使用,制定当次请求调用方法的名字">
        <result name="书写在action中的返回值" type="跳转类型">
    			<!--一般这里添加的是要跳转的页面,在跨包跳转需要在这里添加
					一组<param>标签-->
        	<param name="namespace">跳转的包的namespace</param>  
            <param name="actionname">跳转的action的名字</param> 
    	</result>       
    </action>
</package>

在package中配置拦截器

​ 拦截器的主要作用是讲多个action中的共性的冗余的代码定义到过滤器中提高代码的复用性,例如强制登录。

​ 拦截器类似于过滤器的使用,需要先写一个类实现interceptor接口重写其中的intercept方法,还需要在Struts.xml中对拦截器进行配置

public class MyInterceptor implements Interceptor{
    //核心需要实现的方法,返回值的含义和result中的需要跳转的视图的返回值含义相同,如果是null的话不做跳转。
    public String intercept(ActionInvocation ai) throws Exception{
        //让请求向下面执行
        ai.invoke();//类似于chain.dofilter();
        return null;
    }
}

​ 在Struts.xml中配置拦截器的格式

<!--拦截器需要在package内配置-->
<interceptors>
       	<interceptor name="拦截器的名字" class="拦截器的全限定名"></interceptor>
</interceptors>

​ 拦截器配置需要在包内,在全局跳转的上方

<package name="package的名字" extends="struts-default" namespace="默认值是/">
    <interceptors>
       	<interceptor name="拦截器的名字" class="拦截器的全限定名"></interceptor>
    </interceptors>
    <global-results>
        <result name="书写在action中的返回值" type="跳转类型">
    </global-results>
    <action name="action的名字,未来与namespace一起书写在地址栏中" 
            calss="action的全限定名"
            method="在DMI开发模式中使用,制定当次请求调用方法的名字">
        <!--在需要拦截器的action中进行配置-->
        <interceptor-ref name="引用拦截器的名字"></interceptor-ref>
        <result name="书写在action中的返回值" type="跳转类型">
    			<!--一般这里添加的是要跳转的页面,在跨包跳转需要在这里添加
					一组<param>标签-->
        	<param name="namespace">跳转的包的namespace</param>  
            <param name="actionname">跳转的action的名字</param> 
    	</result>       
    </action>
</package>

​ 拦截器栈的概念:拦截器栈中可以存放多个拦截器供action使用

<interceptor-stack name="拦截器栈的名字">
      <interceptor-ref name="存放的拦截器的名字"></interceptor-ref>
    <!--在action中引用拦截器栈和引用拦截器操作是一样的,只是<interceptor-ref>中name属性的由拦截器的名字改为了拦截器栈的名字
		拦截器栈中拦截器的执行顺序是定义拦截器的顺序
-->
</interceptor-stack>

​ 定义当前包内所有action默认使用的拦截器或拦截器栈

​ 注意: 当引用了自己的拦截器栈或拦截器后, 会覆盖掉系统默认拦截器,导致无法使用Struts2框架的很多功能。

<default-interceptor-ref name="拦截器或拦截器栈的名字"></default-interceptor-ref>
注意:拦截器只在当前package中有效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值