zoukankan      html  css  js  c++  java
  • Struts2总结

    1. 明确Struts2的原理是调用了Servlet的doFilter方法。

    2. 了解Struts2的6大配置文件struts-default.xmldefault.properties、struts-plugin.xml、struts.propertiesweb.xml、struts.xml

    3. 明确Struts2的核心配置文件struts.xml的编写,尤其注意转发和重定向的配置,以及动态方法调用的配置。

    4. 明确Action类接收前端请求的方式有四种:属性驱动方式域驱动方式集合数据接收ModelDriven方式

    5. 明确Action类中获取Servlet的API:request、session、application的两种方式,第一种跟值栈的context有关,主要为了在对应域中放值,第二种跟ServletActionContext有关,较复杂但能获得对应域的更多属性。

    6. 重点明确值栈的概念,一个Action请求对应一个值栈对象,值栈的主要作用是存放Action运行过程中的相关数据,值栈包括两个重要的属性 root context

      明确值栈的存放数据方法,向root中显示、隐式存放数据,向context中显示、隐式存放数据;

      明确值栈的取出数据方法,使用OGNL表达式取出数据。

    7. 明确Struts2自带类型转换器,以及如何自定义类型转换器,自定义过程中要注意类型转换的双向性,因为存在数据的回显。

    8. 明确Struts2的数据验证,这里指的验证是指服务器端验证;

      可以在Action类中编写数据验证代码validate,或者通过Action对应的XML文件设置数据验证,以上两种方式都可以对Action中的所用方法或者指定方法进行数据验证,其中执行的顺序是先全局XML、再指定XML、再指定验证代码、最后全局验证代码;

      了解XML方式的常用数据验证类型。

    9. 明确Action类的执行顺序

      (1)类型转换:类型转换失败实在Action调用相应属性的set方法之前发生的,类型转换失败,不影响程序的运行。

      (2)set方法:无论类型转换是否成功,都将执行该属性的set方法。只不过,类型转换失败,会设置该属性值为null。

      (3)数据验证:若对于类型转换失败的数据,程序中存在为null的验证,则会在向fieldErrors集合中加入类型转换异常信息的同时,将该属性为null的验证信息也加入fieldErrors集合。

      (4)Action方法:只有当fieldErrors集合的size为0,即没有异常信息时,才会执行Action方法。

      类型转换和数据验证的错误都会放在fiedErrors这个Map<String, List<String>>集合中,有错误就要配置跳转的input视图。

    10. 重点明确拦截器,是AOP编程的一种实现,它可以在执行Action之前或之后拦截下用户请求,执行一些操作,以增强Action方法的功能

      注意拦截器是方法级的,同时普通拦截器类继承自Interceptor接口,而方法过滤拦截器类继承自MethodFilterInterceptor抽象类;

      同时注意拦截器的注册方式,拦截器定义是不可以用注解开发的。

    11. 明确国际化(i18n)是通过读取资源文件的形式实现的。资源文件的定义与注册,主要分为全局范围的、包范围的、Action范围的;

      代码中通过ActionSupport的getTest方法加载资源文件的;

      改变加载的资源文件类型,要求让i18n拦截器起作用,并且改变其中的request_locale值

    12. 明确文件的上传和下载:

        (1)文件的上传:默认拦截器栈中包含了文件上传拦截器,故表单通过Struts2可直接将文件上传,我们要做的,就是将上传好的文件放到指定的位置或者其他的一些处理;配置文件中可以配置上传文件的大小(上传多个文件时为总大小)和上传文件的类型。

        (2)文件的下载:如果需要向浏览器提供文件下载功能,则需要设置HTTP响应头的Content-Disposition属性,即内容配置属性值为attachment(附件)

         通过配置文件中设置action的返回方式为stream,打开文件下载拦截器,同时要设置下载的文件资源和响应头。

    13. 明确Struts2使用令牌机制防止表单的重复提交,只要表单下添加<s:token/>即可,并且配置表单提交无效视图。

    14. 明确Struts2的注解式开发@ParentPackage、@NameSpace、@Results、@Result、@Action、@InterceptorRef、@InterceptorRefs

    15. 知道尽量少用Struts标签。

  • 相关阅读:
    职场“十不要”,让你少奋斗30年
    360与QQ在用户界面上的明显BUG
    urlMappings在asp.net2.0,asp.net4.0中的差异
    NHibernate主键生成方式
    MDaemon 常用视频教程
    sqlserver 差异备份与还原示例
    没有不死的爱情, 只有平淡的亲情——如何维系我们的婚姻
    25 个在 Web 中嵌入图表的免费资源
    atoi,atol,strtod,strtol,strtoul实现类型转换
    人生之精华,胜读十年书
  • 原文地址:https://www.cnblogs.com/qjjazry/p/6379771.html
Copyright © 2011-2022 走看看