深入Struts2学习(一)

来源:互联网 发布:sql 多列分组求和汇总 编辑:程序博客网 时间:2024/06/06 12:20

Strtus2核心文件

web.xml

    任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
    通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载StrutsPrepareAndExecuteFilter,只要Web应用负责加载StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter将会加载Struts2框架。

strtus.xml

    struts2的核心配置文件,在开发过程中利用率最高。
    该文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
    包含:
        1. 全局属性
        2. 用户请求和响应Action之间的对应关系
        3. Action可能用到的参数和返回结果
        4. 各种拦截器的配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <!-- include节点是struts2中组件化的方式, 可以将每个功能模块独立到一个xml配置文件,                       然后用include节点引用  --><include file="struts-default.xml"/><!-- package提供了将多个Action组织为一个模块的方式    packege的名字必须是唯一的 package可以扩展    当一个package扩展自另一个package时,该package会在本身配置    的基础上加入扩展的package的配置, 父package必须在子package前配置    name:package名称    extends:继承的父package名称    abstract:设置package的属性为抽象 抽象的package不能定义action 值true:false    namespace:定义package命名空间 该命名空间影响url的地址,例如词命名空间为/test    那么访问的地址为http://localhost:8080/struts2/test/xx.action -->    <package name="default" namespace="/" extends="struts-default"><interceptors>  <!-- 定义拦截器     name:拦截器名称     class:拦截器路径   -->   <interceptor name="timer" class="com.kay.timer"></interceptor>   <interceptor name="logger" class="com.kay.logger"></interceptor>   <!-- 定义拦截器栈 -->   <interceptor-stack name="mystack">     <interceptor-ref name="timer"></interceptor-ref>     <interceptor-ref name="logger"></interceptor-ref>   </interceptor-stack></interceptors><!-- 定义默认的拦截器 每个Action都会自动引用如果Action中引用了其它的拦截器  默认的拦截器将无效 --><default-interceptor-ref name="mystack"></default-interceptor-ref><!-- 全局results配置 --><global-results>    <result name="input">/error.jsp</result></global-results><!-- Action配置一个Action可以被多次映射(只要action配置中的name不同)     name:action名称  http://localhost:8080/projectName/helloworld.action     class:对应的类路径     method:调用Action中的方法名  -->        <action name="helloworld" class="com.lijy.action.HelloAction">            <!-- 引用拦截器                 name:拦截器名称或拦截器栈名称              -->                   <interceptor-ref name="timer"></interceptor-ref>                        <!-- 节点配置                  name : result名称 和Action中返回的值相同                  type : result类型 不写则选用superpackage的type struts-default.xml中默认的dispatcher             -->            <result name="success" type="dispatcher">/talk.jsp</result>                        <!-- 参数设置                 name : 对应Action中的get/set方法              -->            <param name="url">http://www.sina.com</param>        </action>    </package>    <constant name="struts.il8n,reload" value="true"></constant></struts>

struts.properties

    struts2框架的全局属性文件,自动加载。
    该文件包含很多key-value对。、
    该文件完全可以配置在struts.xml文件中,使用constant元素。

#指定默认编码集,对于请求参数带有中文的情况,因该设置GBK或GB2312,默认值UTF-8struts.i18n.encoding=GB2312#是否每次HTTP请求到达时,都重新加载国际化资源文件,默认值falsestruts.i18n.reload = true#struts.xml改动后,是否重新加载该文件。在开发阶段建议将此属性设置为"true",提高开发效率,默认为falsestruts.configuration.xml.reload=true#是否使用Struts2的开发模式,可以获得更多报错信息,便于阅读,在开发阶段设置为true,默认为falsestruts.devMode = true#设置浏览器是否缓存静态页面,开发阶段设置为false,以获得服务器的最新响应,默认为truestruts.serve.static.browserCache=true#制定后缀为.action形式的请求可被Struts2处理,可配置多个请求后缀,比如.do、.struts等,用逗号隔开struts.action.extension=action,do,#配置服务器运行时的端口号,一般情况下该属性不修改,如果端口号占用怎重新分配端口号.默认值80struts.url.http.port = 80

参考

    http://www.imooc.com/video/8995
原创粉丝点击