• Strutss 配置详解


    web.xml

    任何一个web应用程序都是基于请求/响应模式进行构建的,无论采用哪种MVC框架,都离不开web.xml文件的配置

    Strus 2框架需要在web.xml中配置其核心控制器-----StrutsPrepareAndExecuteFilter,用于对框架进行初始化,

    以及处理所有的请求

    配置如下:

    <!-- 引入struts2的核心过滤器 -->
      <filter>
        <!-- 过滤器的名称,可以自定义 -->
        <filter-name>struts2</filter-name>
        <!-- 过滤器类 -->
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      <filter-mapping>
        <!-- 过滤器名称 -->
        <filter-name>struts2</filter-name>
        <!-- 过滤器映射 -->
        <url-pattern>/*</url-pattern>
      </filter-mapping>

    StrutsPrepareAndExecuteFilter作为一个Filter在Web应用中运行,它负责拦截所有用户请求,当用户请求到达时,该filter会过滤用户请求.如果请求以.action结尾,该请求将被输入Struts2框架进行处理.

    Action

    在Struts2框架中,控制器是由两个部分组成

    核心控制器(Filter):用于拦截用户请求,对请求进行处理

    业务控制器(Action):调用相应的MOdel类实现业务处理,返回结果

    编写的Action类不一定要实现Action接口,只要该类该类含有一个返回字符串的无参的public方法即可

    在实际开发中,Action类通常都继承自Struts 2提供的com.opensymphny.xwork2.ActionSuppor类,以便简化开发

    开发完成一个类,就需要在struts.xml中配置Action

    配置如下:

    <!-- 定义action -->
        <action name="hello" class="cn.baby.action.HelloAction">
            <!-- 显示成功的jsp页面 -->
            <result name="success">
                /index.jsp
            </result>
            <!--登入失败回到的页面-->
            <result name="error">
                /error.jsp
            </result>
        </action>

    在配置文件中将一个请求的URL对应到Action类上,当一个请求匹配某个Action的名字时,框架就会使用这个Action类处理请求

    Action元素中的name属性是必须的

    表示action的名字

    用于匹配URL

    class属性表示Action类的全限定类名

    就决定定该action的实现类

    Result

    result元素的作用是实现结果视图的调用,并决定视图以哪种形式展现给客户端

    Struts2请求流程:

    浏览器发送请求------StrutsPrepareAndExecuteFilter 调用 execute的方法----到某个Action---调用业务

    返回业务结果-----到某个Action------action返回逻辑视图名-------到物理视图----生成相应内容-------输出响应

    Struts2的配置文件

    他的核心配置文件就是struts.xml配置文件

    constant元素用于配置常量,通过常量的配置,可以改变Struts2框架的一些行为

    constant元素包含两种属性,其实name属性表示常量的名称,value属性表示常量的值

    例子:

    <!--决绝中文乱码-->
        <constant name="struts.i18n.encoding" value="UTF-8"></constant>
        <!--设置用户界面主题,默认值为XHTML风格-->
        <constant name="struts.ui.theme" value="simple"/>

    namespace属性

    它是个可选属性,该属性定义该包中action的命名空间

    没有此属性,则action被放入默认命名空间中

    Struts 2框架使用action的名称和它所在包的命名空间来表示一个action

    默认的命名空间用""表示

    也可以使用"/"定义一个根命名空间

    两者是有区别的

    当请求Web应用程序根路径下的action

    框架在根命名空间中查询对应的action

    如果没找到

    再到默认的的命名空间中去查找

    拆分配置文件

    Struts 2可以将一个配置文件拆分为多个配置文件

    但默认只加载struts.xml文件

    一但拆分了可以通过include元素提供的file属性进行包含进来

     <!--包含其他的文件-->
        <include file="xxxx.xml"/>

    struts-default.xml

    它struts 2框架默认配置文件,为框架提供默认配置,该配置文件会自动加载

    struts-plugin.xml

    它是struts2插件使用的配置文件,如果不是插件开发,则不需要编写这个文件

    Action的配置

    Action主要有三个作用:

    给请求封装需要做实际的工作

    通常使用Action的execute()方法实现

    为数据的转移提供场所

    帮助框架由哪个结果呈现请求响应

    method属性

    我们可以在同一action编写不同的方法(必须和execute格式一样)

    然后就可以通过action里的method属性来实现

    配置默认的action

    当找不到页面时

    框架会提供一个默认的找不到的页面给你

    当然需要你的配置

    在每个package下只能有一个<default-action-ref.../>元素

    配置如下:

     <!-- 生命包 -->
        <package name="default" namespace="/" extends="struts-default">
            <default-action-ref name="defaultAction"/>
            <action name="defaultAction">
                <result>error.jsp</result>
            </action>
        </package>
  • 相关阅读:
    LumaQQ.NET协议过期及解决办法
    帮助中国移动设计10086的排队小模块 Virus
    《宫锁心玉》观后感 Virus
    WCF扩展:行为扩展Behavior Extension<一> Virus
    谈谈我对实体的认识:DTO,DMO,DPO Virus
    自定义ORM系列(三)工具雏形及基本用法 Virus
    随笔写下的开发流程 Virus
    自定义ORM系列(二)发现属性是否修改,有选择的持久化 Virus
    我对DDD的认知(一) Virus
    胡乱说一下我对于 BO VO PO DTO 的理解 Virus
  • 原文地址:https://www.cnblogs.com/liuzhiw/p/8227808.html
Copyright © 2020-2023  润新知