博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH框架学习笔记(三)----struts2的开发步骤,常规配置,异常处理,国际化
阅读量:3687 次
发布时间:2019-05-21

本文共 3012 字,大约阅读时间需要 10 分钟。

  1. struts2应用开发步骤:
    1. 在web.xml文件中定义核心Filter来拦截用户请求
      struts2
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      struts2
      /*

       

    2. 定义处理用户请求的Action类
    3. 在struts.xml中配置Action:
      /index.jsp
      /error.jsp

       

  2. struts2的常规配置
    1. 常量配置的3中方式:
      1. 通过struts.properties文件配置
      2. 通过struts.xml文件配置如下
      3. 通过Web应用的web.xml文件配置:在filter标签中用init-param标签配置,如下图
        struts2
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        struts.action.extension
        action,php
    2. 加载struts2配置常量的顺序:struts-default.xml->struts-plugin.xml->struts.xml->struts.properties->web.xml   后面的文件会覆盖前面的
    3. struts.xml文件可以包含子模块:
  3. Action的实现
    1. struts2直接用Action封装HTTP请求参数,Action中应该包含与请求参数对应的实例变量,并为这些变量设置setter.getter 方法
    2. Action的那些实现类:
      1. ActionSupport:提供了许多默认方法,包括获取国际化信息方法,数据校验方法,默认的处理用户请求方法,大大简化了Action的开发
      2. ActionContext:该类不是Actiong的实现类,Action 可以通过该类来访问Servlet API
      3. ServletContextAware:实现该接口的Action可以直接访问ServletContext实例
      4. ServletRequestAware:实现它可以直接访问HttpServletRequest实例
      5. ServletResponseAware:实现它可以直接访问HttpServletResponse实例
      6. ServletActionContext:工具类,可以拿到PageContext,HttpServletRequest,HttpServletResponse,ServletContext对象
  4. Action的配置
    1. 包和命名空间:

       

      1. name:包的名字
      2. extends:指定该包继承的其他包,可以继承其他包中的Action定义,拦截器定义
      3. namespace:定义命名空间,有了命名空间后url=命名空间/Action名
    2. Action的基本配置

      name:指定action名字  class:指定对应的Action类   method:指定对应的方法

  5. 配置struts2的异常处理:
    1. 开启异常映射功能:该功能需要一个拦截器<interceptor>,拦截器在struts-default.xml中已经有定义,struts.xml只需要继承struts-default.xml就行了
    2. 声明异常捕捉:
      1. 局部异常映射:
        url

         

      2. 全局异常映射:
        url

         

    3. 输出异常信息
      1. <s:property value="exception"/>:输出异常对象本身
      2. <s:property value="exceptionStack">:输出异常堆栈信息
  6. struts2的国际化:
    1. 国际化步骤:
      • 系统加载国际化资源文件,加载文件有2中方式:
        • 自动加载:Action范围,包范围的国际化资源文件由系统自动加载
        • 手动加载:JSP范围,全局范围的国际化资源文件需要分别使用标签,配置常量加载
      • 输出国际化,有2中方式:
        • 在视图页面输出国际化需要使用标签库
        • 在Action类中输出国际化需要使用ActionSupport的getText()方法来完成
    2. 视图页面国际化:
      1. 加载资源:<s:i18n name="包名.baseName"/>
      2. 输出国际化:
        • 在text标签中:<s:text name=""/>
        • 在表单标签中用key:<s:textfield name="username" key=""/>
    3. Action国际化:
      1. 自动加载资源的条件:
        • 资源文件的baseName与Action类的类名相同
        • 资源文件与Action类的.class文件在同个路径下
      2. 输出国际化:使用ActionSupport的getText()方法来完成
    4. 包范围国际化:
      1. 自动加载资源的条件:例如把资源保存在WEB-INF\classes\org\crazyit\app\action路径下,该资源文件就可以被org.crazyit.app.action包及其所有子包的Action访问
      2. 输出国际化与Action的一样
    5. 全局国际化:
      1. 加载资源:配置struts常量struts.custom.i18n.resources=baseName
      2. 输出国际化以上方法都可用
posted @
2017-04-18 19:58 阅读(
...) 评论(
...)

转载地址:http://ugudn.baihongyu.com/

你可能感兴趣的文章
# java学习笔记 2020 2/7(九)慕课网 使用方法
查看>>
Linux 循环重启进入登录界面解决方法
查看>>
Linux中配置环境变量(看我就对了)
查看>>
Linux学习笔记B站狂神说(自己总结方便复习)
查看>>
Centos7安装redis6.0.3,报错make[1]: *** [server.o] Error 1的解决方法
查看>>
数据库事务,原子性、一致性、隔离性、持久性
查看>>
SpringBoot整合redis-idea连接虚拟机中redis
查看>>
Redis学习笔记(B站狂神说)(自己总结方便复习)
查看>>
TCP三次握手过程,为什么需要第三次握手?
查看>>
[数据结构]平衡二叉树实现实例
查看>>
[数据结构]平衡二叉树怎么旋转?怎么画?全过程--(刚学会防止忘记)
查看>>
IDEA中,实体类实现Serializable,未给出自动生成serialVersionUID提示
查看>>
解决SpringBoot前端jsp、html页面无法加载css、js等文件的问题
查看>>
什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?
查看>>
(栈的应用)中序表达式转换成后序表达式问题
查看>>
KMP算法中next数组及改进的kmp算法nextval数组的手工计算方法
查看>>
[by暴走的山交君][剑指offer系列] 03 数组中重复的数字
查看>>
[by暴走的山交君][剑指Offer系列] 05 替换空格
查看>>
[by暴走的山交君][剑指Offer系列] 52 两个链表的第一个公共节点
查看>>
[by暴走的山交君][剑指Offer系列] 53 - I 在排序数组中查找数字
查看>>