Struts2框架4.Struts2配置详解

根据Struts2框架1.基础这篇文章我们可以很好的理解Struts2的执行流程,接下来我们详细介绍一下配置
1.wbe.xml
 任何一个web应用程序都是基于请求/相应模式进行构建的,所以无论采用哪种MVC框架,都离不开web.xml文件的配置。换句话说,web.xml并不是Struts2框架特有的文件,只有在Web应用中配置了web.xml文件,MVC框架才能真正的与Web应用融合起来。因此,web.xml文件是所有javaweb应用程序的核心文件。struts2框架需要在web.xml中配置核心控制器StrutsPrepareAndExecuteFilter,用于对框架进行初始化。配置如下
<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可以包含一些初始化参数,如要加载的xml形式的配置文件,多个配置文件用逗号分隔,如果没有这些参数struts框架会默认加载struts-default.xml、struts-plugin.xml和struts.xml。

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

2.Action
 实际上,在MVC框架中,控制器是有由两个部分组成,分别如下。
  1).核心控制器(Filter):用于拦截用户请求,对请求进行处理。
  2).业务控制器(Action):调用相应的Model类实现业务处理,返回结果。
 注:在实际开发中,Action类通常都继承自ActionSupport类。
 完成一个Action类后,就需要在struts.xml中配置action了。配置如下

<struts>
    <!-- name属性可以随便填写 namespace属性为你action的包名 extends属性一定要继承struts-default或者是你自己定义的 -->
    <package name="default" namespace="/" extends="struts-default">
        <!-- 配置action name属性为action名字 class这个action指向那个类-->
        <action name="FwInfoAction" class="action.FwInfoAction">
            <!-- 结果为input时,跳转网页login.jsp,在服务端做验证的时候,默认执行input-->
            <result name="input">login.jsp</result>
            <!-- 结果为guanli_error时,跳转页面login.jsp -->
            <result name="guanli_error">login.jsp</result>
            <!-- 结果为guanli_success时,跳转页面guanli.jsp -->
            <result name="guanli_success">guanli.jsp</result>
        </action>
    </package>
</struts>


3.Result
 Action类在处理完用户请求后,会返回一个处理结果。这个结果是一个简单的字符串,框架根据这个字符串选择对应的 Result,所以我们又将其成为逻辑视图名称。这个逻辑属兔名称由result元素的name属性表示。简单的说就是,用来设定在Action处理结束后,系统下一步将要做什么。


Action的作用
 对于struts2应用的开发者而言,Action才是应用的核心。开发者需要提供大量的Action类,并且在struts.xml文件中配置Action。Action主要有三个作用:
  1.封装工作单元
    可以把Action看作控制器的一部分,其主要职责就是控制逻辑业务,通常使用Action的execute()方法实现这一功能。
  2.数据转移的场所
    Action会自动将提交的数据,写到对应的属性当中(属性名与提交的参数名相同),记得set、get方法。
  3.返回结果字符串
    Action的最后一个作用是返回结果字符串,框架根据Action返回的结果字符串选择对应的视图组件呈现给用户。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值