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

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/03/29 18:54

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。

原创粉丝点击