struts2入门

来源:互联网 发布:董洁出轨 知乎 编辑:程序博客网 时间:2024/06/14 09:12

struts2的优点

  1. 基于MVC架构,框架结构清晰,开发流程一目了然,很好掌控开发的过程。
  2. 使用OGNL进行参数传递。
    OGNL提供了在Struts2访问各种作用域中数据的简单方式,可方便的获取Request,Attribute,Application,Session,Parameters的数据,大大简化开发人员在获取数据的代码量。
  3. 强大的拦截器
    Struts2 拦截器是一个Action级别的AOP,许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器可配置与重用,可将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能。
  4. 易于测试
    Struts2的Action都是简单的POJO,可方便对Struts2的Action编写测试用例,方便了Java Web项目的测试。
  5. Strut2提供了类型转换器,可把特殊的请求参数转换成需要的类型。

struts2基本开发步骤(以struts-2.2.3.1为例)

  1. 配置环境(相关最小jar包)
asm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcommons-fileupload-1.3.1.jar(文件上传组件)commons-io-2.2.jar(文件上传组件依赖包)commons-lang3-3.2.jarfreemarker-2.3.22.jar(Struts 2的UI标签的模板使用FreeMarker编写)javassist-3.11.0.GA.jarlog4j-api-2.2.jarlog4j-core-2.2.jar(日志记录)ognl-3.0.6.jar(对象图导航语言:Object Graph Navigation Language,struts2框架通过其读写对象的属性)struts2-core-2.3.24.1.jar(Struts 2框架的核心类库)xwork-core-2.3.24.1.jar(XWork类库,Struts 2在其上构建)  
 2. 配置web.xni文件WEB部署文件,配置  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>
 3. 新建struts.xml文件(放置在src目录下)
<?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>    <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="true" />    <package name="default" namespace="/" extends="struts-default">        <action name="" class="" method="">            <result name="" type=””>            /url            </result>        </action>    </package></struts>
4.创建相关的Action,可不继承任何特殊的类,但常继承ActionSupport。5.注册Action
<action name="" class="">    <result></result></action>
6.创建相关的页面7.访问测试action的name.action

struts2文件的配置

1.struts-default.xml文件
1)、Struts-default包由struts内置的,定义了struts2内部的众多拦截器和Result类型。
2)、Struts2很多核心的功能都是通过这些内置的拦截器实现。
当包继承struts-default包才能使用struts2提供的这些功能。
3)、struts-default包是在struts2-core-2.x.x.jar文件中的struts-default.xml中定义。 struts-default.xml也是Struts2默认配置文件。
4)、Struts2每次都会自动加载 struts-default.xml文件。
包可通过abstract=“true”定义为抽象包,该包不能包含action。

2.struts.xml文件
Struts2默认的配置文件为struts.xml ,该文件需放在WEB-INF/classes下,在当前工程的src下。

package元素
1、Struts2 把各种 Action 分门别类地组织成不同的包. 一个典型的 struts.xml 文件可以有一个或多个包。
2、name属性:包的名称,每个 package 元素都必须有一个 name 属性
3、namespace属性(可选):如没有给出, 则以 “/” 为默认值. 若 namespace 有一个非默认值, 调用这个包里的Action, 须把这个属性所定义的命名空间添加到有关的 URI 字符串里
4、extends属性:当前包继承的包,新创建的包必须直接或间接继承struts-default包(extends=”struts-default”),包里的所有动作可使用在 struts-default.xml 文件里的result类型和拦截器.
action元素
1、action 元素嵌套在 package 内, 表示一个 struts请求.
2、name属性:请求的action名称,该属性与用户请求路劲间存在一一对应关系。
3、class属性(可选):action请求的具体处理类,如没配置 class 属性, Struts 将把 com.opensymphony.xwork2.ActionSupport 作为默认值。
4、method属性(可选):class中具体处理action的方法,如果没有配置默认执行ActionSupport类中的execute方法。
result元素
1、result 元素是 的一个子元素, 指导struts 在完成动作后控制权转向. result 元素name 属性对应着 Action 方法返回值. 因method方法在不同情况下可能返回不同的值, 所以同一个 action 元素可有多个 result 元素。
2、result 元素的 type 属性负责指定结果类型. type 属性的值必须是在包含当前包或者是当前包的父包里注册过的结果类型. type 属性的默认值为 dispatcher。
3、result 元素的 name 属性建立 和 Action 方法返回值之间的映射关系。
name 属性的默认值为 “success”。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在看守所想上诉怎么办 南京老人去世后怎么办 吸毒强戒两年家人该怎么办 犯人在监狱里病亡怎么办 父母去世监狱人怎么办 公司不续签合同怎么办 股票亏20个点后怎么办 摩托车给扣了怎么办 通知拘留跑了怎么办 假烟倒卖会怎么办 卖了40万假烟怎么办 刑事拘留15天了怎么办 治安传唤人不到怎么办 治安处罚有劣迹怎么办 学生怀孕了该怎么办 有病不能拘留那怎么办 拘留所不交伙食费怎么办 治安拘留不执行怎么办 释放证明书丢了怎么办 银行提前收贷款怎么办 存货周转天数高怎么办 欠款人没有财产怎么办 起诉后对方没钱怎么办 法院起诉人不到怎么办 治安拘留跑了怎么办 看守所里生病了怎么办 二审上诉被驳回怎么办 醉酒驾车取保候审以后怎么办 小案子证据不足怎么办 撞车不严重逃逸怎么办 被执行人没有财产执行怎么办 挖到人头了怎么办 取保保证金不退怎么办 被诬陷经济诈骗怎么办 醉驾刑事拘留后怎么办 被别人举报赌博怎么办 涉黄刑事拘留怎么办取保候审 换了车牌保险怎么办 车辆转让后保险怎么办 立案后警察不管怎么办 打架后对方讹人怎么办