zoukankan      html  css  js  c++  java
  • Struts2---对Servlet的API的访问,结果页面的配置,数据的封装

    Struts2对Servlet的API的访问

        1.完全解耦合的方式

            通过ActionContext对象,直接获得所有参数的map<String,String[]>,返回参数到页面只能对request,session,application的map进行操作,不能对这些对象本身进行操作。
            

        2.使用ServletAPI的原生方式

            通过ServletActionContext直接获得Request对象和ServletContext对象(对application操作),可以获得真实的request,session,application对象以及他们相应的方法。
            

        3. 接口注入方式

            通过实现ServletRequestAware,ServletContextAware等接口,实现接口中的方法获得API操作对象,使用这种方法是线程安全的,因为Action是多例的,每个访问都会实例化一个Action对象。(Servlet是单例的)
            

    Struts2结果页面的配置

        1.局部结果页面的配置

            在某个action中配置result,只对该action有效
            

        2.全局结果页面的配置

            在某个包中配置global-results,该包中的所有action只要返回这个值,就会跳转到相应页面
           

        3.result标签的一些属性

            name属性:逻辑视图的名称,默认为success

            type属性:页面跳转的类型,取值有下列几种
                            dispatcher:      action转发到jsp(默认值)
                            redirect:          action重定向到jsp
                            chain:             action转发到action
                            redirectAction:action重定向到action(当action不在同一个包下时需要配置一些变量)
                                                

      

    Struts2数据的封装

        1.属性驱动:提供属性的set方法(不常用)

            这种方法就是给action提供与domain类相应的属性和他们的set方法,前端代码和平常一样

        2.属性驱动:页面中提供表达式的方式

            这种方式需要再action中提供一个domain对象,不需要实例化,但要有get和set方法,缺一不可。还需在前端页面提供表达式,也就是input的name的写法。这种方式适用于当一个表单提交的数据中包含多个对象时。
            

        3.模型驱动:采用模型驱动方式

            这种方式需要实现ModelDriven<User>接口,以及他的getModel()方法,User就是你要封装的类对象。这种方式最常用,但只能封装一个对象,多个对象需要用第二种方式
            

        4.封装数据到List集合中

            封装到List和封装到map和属性驱动---页面提供表达式很类似,都需要在action中提供一个List<User>(Map<String,User>)只是页面表达式不同
            

        5.封装数据到map中(hashmap)

            页面表达式中map的key可以随便取
            

  • 相关阅读:
    Python_01安装与配置
    数据库的事务日志已满,起因为"LOG_BACKUP"
    百度网盘视频在线倍速播放的方法——Js 一行代码实现
    Socket里Client和Server
    Python自动化执行遍历点击列表的前20行每一行
    pyhton判断闰年
    Python程序结构-包
    试题 历届试题 错误票据
    试题 历届试题 剪格子
    试题 历届试题 打印十字图
  • 原文地址:https://www.cnblogs.com/zy-Luo/p/11033135.html
Copyright © 2011-2022 走看看