Strut2中strus.xlm文件的配置详解

1. Struts2的工作流程

在提到struts.xml文件的配置之前,必须先啰嗦几句Struts2的工作流程。它在web.xml中设置了过滤器,把前端所有的请求或者部分请求过滤,交给对应的action响应,从而对前段的请求进行答复,而struts.xml就是它找对应action并回到相应的响应页面的参照文件。

2. struts.xml文件模版

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<!--制定struts.xml文件的根元素-->
<struts>
	<!--制定web编码集,相当于调用HttpServletRequest的setCharacterEncoding方法-->
	<constant name="struts.i18n.encoding" value="UTF-8"/>
	<!--配置包,包名为default,该包继承了Struts2框架的默认包struts-default,namespace为默认,"/"与""都表示默认-->
    <package name="default" namespace="/" extends="struts-default">
        <!--定义名为hello的Action,该Action的处理类为com,action。TestAction,并映射到success.jsp-->
        <action name="hello" class="com.action.TestAction">
        	<!--name默认值为"success"-->
            <result name="success">/success.jsp</result>	<!-- 成功则返回success.jsp-->
            <result name="error">/error.jsp</result>	<!-- 失败则返回error.jsp-->
        </action>
    </package>
</struts>

3. struts.xml关键元素分析

(1)package元素:用来配置包,包是一个独立的单位其属性如下:

  name属性:这是一个必须的属性,标识包的名字,以便其他包被引用

 extends属性:可选属性,指定包继承的自其他的包

  namespace属性:可选属性,指定命名空间,标识此包下的action的访问路径

  abstract属性:可选属性,指定该包为抽象包

(2)action元素:Struts2框架通过Action对象来处理HTTP请求,请求URL地址对应的Action即在action元素中。

  name属性:必须属性,标识Action,指定了该Action所处理的请求的URL

  class属性:可选属性,Action对象所对应的实现类

 method属性:可选属性,指定请求Action时调用的方法

  converter属性:可选属性,指定类型转换器的类

(3)result元素:当调用Action方法结束后,下一步就是使用result元素来设置返回给浏览器的页面。

 dispatcher属性:将请求forward(转发)到指定页面

 redirect属性:将请求重定向到指定页面

 chain属性:处理Action链

 freemarker属性:指定Freemarker模版为视图

 httpheader属性:控制特殊的HTTP行为

 redirect-action属性:直接跳转到其他action

 stream属性:向浏览器返回一个InputStream(一般用于文件下载)

 velocity属性:制动使用velocity模版为视图

 xslt属性:用于XML/XSLT整合

 plainText属性:显示某个页面的原始代码


dispatcher与redirect的区别:

dispatcher:转发到指定页面,页面的URL不会改变,同时带request参数,服务器在上一个页面的基础上跳转到下一个页面

redirect:重定向到某个页面,页面的URL改变,丢失所有的request参数和Action的处理结果,即服务器重新开一个全新的页面


(4)include元素:用于在struts.xml配置文件中包含其他配置文件,与c/c++中的include类似(用于导入类库)

 例如:

<struts>
     <include file="/a.xml"/>
</struts>

(5)global-results元素:配置包中的全局结果,与result具有相同的属性,作用范围是包下的所有Action。当一个Action返回时,它会优先去寻找局部result,若没找到则会查找全局结果。


(6)default-action-ref元素:用来配置默认的Action,与Action具有相同的属性。若Struts2没有找到对应的Action时,则会执行默认Action。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值