Struts2 简介(一)

本文介绍了Struts2框架的历史背景及其实现原理,详细解析了Struts2的配置文件加载顺序与常用配置项,包括如何定义请求后缀、设置编码等,并展示了如何通过配置文件进行模块化开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Struts 历史简介
Struts是一个JavaWeb框架, Struts2并不是在Struts1基础上改进的一个框架,而是基于 WebWork的全新框架。Struts2是基于MVC开发模型的一个框架, 基于表现层框架.
2.Struts2的执行原理与流程
2.1执行图那个控制器在web.xml中配置
官网给的图
3.Struts2 的配置文件
3.1配置文件的加载顺序
a、default.properties : struts2-core**.jar org.apache.struts 包 b、struts-default.xml : struts2-core**.jar [只看]
c、struts-plugin.xml : 在插件的jar包 [只看]
d、struts.xml:在应用的构建路径顶端,自己定义的Struts配置文件。(推荐使用)
e、struts.properties:在应用的构建路径顶端(不推荐)
f、web.xml:配置过滤器时,指定参数(不推荐)
前三个,我们只能看,不能修改,如要修改,个人推荐在struts.xml中修改。
3.2配置文件中的常用标签
3.2.1 constant 指定处理请求后缀:

  <!--修改请求的后缀,多个后缀之间,以英文的","相隔-->
    <constant name="struts.action.extension" value="do"/>
    Struts2 的默认请求路径为xxx.action 改为了xxx.do

      <!--当配置文件修改之后,系统是否默认的加载配置文件,默认是false ,看default.properties-->
    <constant name="struts.configuration.xml.reload" value="true"/>

    <!--有dev的时候,用的时候就改为true,那也是重载-->
    <constant name="struts.devMode" value="true"/>

    <constant name="struts.i18n.encoding" value="utf-8">    </constant>
    指定默认编码集
    <constant name="struts.multipart.maxSize" value"10485670"></constant>
    上传文件大小限制,限制为10M

3.2.2 package元素
意义:分模块开发
属性:name:必须要有的没配置文件中要唯一,一个名字
extends:不是必须的。指定父包,会把父包中的配置内容继承下拉。一般需要直接继承一个叫做“struts-default”的包(该包在strust-default。xml中,配置文件中),如果不继承,struts2核心功能无法使用。
abstract: 是否是抽象包. 没有任何 action 元素的 package 可以声明为抽象包.
namespace: 指定名称空间. 般以 “/“ 开头 . 该包中的动作访问 径: namespace+动 作名称 . 如果 namespace=““, 这是默认名称空间和 写该属性是 样的. 但与namespace= “/“ 同

 <package name="p1" extends="struts-default" >
        <!--action后不可以写前缀-->
        <action name="hello"  class="class中写该action的路径" method="bye">
            <result name="error">error.jsp</result>
         </action>
  </package>
  //这就是在struts.xml文件中的配置

3.2.3 action元素
作用:定义一个动作
属性:name: 必须的. 动作名称, 用户于发起请求, 在包中要唯 .
class: 指定动作类的全名. 框架会通过反射机制去实 化. 写 默认是 com.opensymph ony.xwork2.ActionSupport .
method: 指定动作类中的动作 法. 框架会执 该 法. 默认是 execute(). execute () 法默认返回 success

4 动作类:
4.1编写动作类的三种方式
4.1.1 POJO
普通的javaBean 没有任何继承
4.1.2 实现Action接口
实现com.opensymphony.xwork.Action2接口,可以使用接口中的常量:

public interface Action {
    String SUCCESS = "success";
    String NONE = "none";
    String ERROR = "error";
    String INPUT = "input";
    String LOGIN = "login";

    String execute() throws Exception;
}

4.1.3继承ActionSupport:

public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {
//这些是他实现的方法

4.2 使用通配符配置action
在配置 元素时, 允许在指定 name 属性时, 使用模式字符串 (用 “ * “ 代表一个或多个字符)。

  <action name="*Customer" method="{1}Customer" class="这里面写CustomerAction的路径">
        <result name="success">{1}Customer.jsp</result>
        </action>
        //上边的是xml文件中
                                                                                          <a href="${pageContext.request.contextPath}/addCustomer                                                                                      .action">增加</a>

<a href="${pageContext.request.contextPath}/deleteCustomer
  .action">删除</a>

<a href="${pageContext.request.contextPath}/updateCustomer
 .action">修改</a>

  <a href="${pageContext.request.contextPath}/checkCustomer
  .action">查看</a>
  </body> 
  //上边的是jsp中调用的链接    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值