Struts 2.x

Struts 2.X

 

Struts2.X与1.X完全不同。起源于WebWork,1.X与2.X无任何直接关系

1. 部署struts2的jar包时,注意删除其中无用的jar,如**-plugin.jar

struts2 中页面提交请求后,struts2将会截获请求,查找struts.xml,找到对应的Action

生成Action实例,将提交的数据置入该实例中,然后调用Action中的方法,进行处理

Struts1.x

Struts2.x

线程不安全,公用action

线程安全,每次创建新的Action

ActionServlet作为分发器

Filter作为分发器

使用POJO时需要显式在FormBean中实例对象

不需要

文件上传,将文件封装为FormFile

将文件封装为java.io.File对象,只需要Action中定义File变量后,使用该变量

 

Struts2为线程安全,由于其每次都创建新的Action实例

2. 配置文件

strtus.properties   web.xml struts.xml

 

Action接口  预置结果result success none  error  inputlogin

              

             实现public String execute()方法的都可以作为Action

Struts2 零配置  通过@

 

注意:

struts2.0  程序入口

org.apache.struts2.dispatcher.FilterDispatche

struts2.1以后

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

3. use POJO

<struts:urlaction=”” includeParams=””/>

-----------------------------------------------------------------------------------

4. (1)数据类型转换器

继承DefaultTypeConverter类实现convertValue()

在src中配置xwork-conversion.properties

在struts.xml中配置,可只作用于某个Action

   (2)获取response request

某些情况需要获取其得到session或cookie等

ServletActionContext的静态方法  非IoC

  Struts通过该对象维护servlet对象

   getResponse()    getRequest()

Aware相关接口

Servlet***Aware  (context/request/response/session)

(3)Validator 数据校验

  xml配置

需要在Action所在的类中添加一个XML文件 Action类名_validation.xml

                                           Action类名_Action别名_validation.xml

如果实现客户端提示,只需要使<struts:form>中的validate=”true”

  或者  @

---------------------------------------------------------------------------------------

5. Sturts2.x 标签

ONGL,不支持EL,struts-tags.lib 存在于struts2-core-2.0.11.1.jar中

控制 appenditerator merge subset generator

/数据

/表单 autocompletAjaxTag(自动补全)

datatimepicker  (时间)

doubleselect(联动选择)

      optiontransferselect(左右各有一列,左可到右边,右可到左)

     optgroup二级分租

/非表单  显示信息,

 debug  / fielderror  /actionerror /actiionmessage

struts对div/submit/a/ajax封装(无刷新)

/tabbedPanel标签页

/tree 标签输出树   输出文件(java对象File)结构 

  加载动态数据 ,当数据量比较大时

-----------------------------------------------------------------------------------------

6. Struts2.x 拦截器(interceptor)

  (1)

Timer

<actionname=”” class=””>

  <interceptor-refname=”timer”></interceptor-ref>

</action>

  (2)

Token 防重复提交 通过session标记,标记只能使用一次,保证最多只能提交一次

<action>

   <interceptor-ref  name=”token”/>

   <interceptor-ref name=”basicStack”/>

   <result….

..

<result name=”invalid.token”>toenInvalid.jsp</result>

   </action>

在提交页面的form中需标记<struts:token/>

  (3)

   execAndWait 执行等待拦截器

   需要定义completeStack和execAndWait两个拦截器

  (4)

    自定义拦截器 实现Interceptor接口,一般直接继承AbstractInterceptor

7. 文件上传

在文件上传时,在Action中定义File变量,struts2会将文件保存到临时文件夹,但在上传结束后会销毁该文件,方法中需要将该文件复制出来

fileUpload拦截器  :可限制上传文件的大小类型etc..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值