一、内容大纲

1 结果页面配置

(1)全局结果页面

(2)局部结果页面

- 配置全局也配置局部,最终局部为准

(3)result标签type属性

- 默认值 dispatcher做转发

- redirect做重定向

- chain:转发到action

- redirectAction:重定向到action

2在action获取表单提交数据

(1)使用ActionContext类获取

(2)使用ServletActionContext类获取

(3)使用接口注入方式获取

- 使用ServletActionContext类操作域对象

3 struts2提供获取表单数据方式

(1)属性封装

- 定义变量,变量和表单输入项name属性值一样,生成get和set方法

(2)模型驱动封装(重点)

- 实现接口,实现接口里面的方法,表单输入项name属性值和实体类属性名称一样

(3)表达式封装

(4)表达式封装和模型驱动封装比较

- 相同点:可以把数据封装到实体类对象里面

- 不同点:表达式封装可以封装到不同的实体类里面

4 struts2获取数据封装到集合中(会用)

(1)封装到list集合

(2)封装到map集合

5 案例-添加客户功能

二、结果页面配置

全局结果页面

1 result标签配置action方法的返回值到不同的路径里面

2 创建两个action,执行默认的方法execute方法,让两个action的方法都返回success,返回success之后,配置到同一个页面里面

(1)如果多个action,方法里面返回值相同的,到页面也是相同的,这个时候可以使用全局结果页面配置

(2)在package标签里面配置

局部结果页面

(1)配置全局页面,也配置了局部页面,最终以局部配置为准

Result标签的type属性

1 result标签里面除了name属性之外,还有一个属性 type属性

(1)type属性:如何到路径里面(转发还是重定向)

2 type属性值

(1)默认值,做转发操作,值是 dispatcher

(2)做重定向操作,值是 redirect

(2)上面两个值dispatcher、redirect,这两个值一般针对到页面中配置,

配置到其他的action里面

- chain:转发到action,一般不用,缓存问题

- redirectAction:重定向到action

三、Action获取表单提交数据

1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap

2 提交表单到action,但是action没有request对象,不能直接使用request对象

3 action获取表单提交数据主要三种方式

(1)使用ActionContext类

(2)使用ServletActionContext类

(3)使用接口注入方式

使用ActionContext类获取

(1)因为方法不是静态的方法,需要创建ActionContext类的对象

(2)这个ActionContext类对象不是new出来的,

1 具体演示

(1)创建表单,提交表单到action里面

(2)在action使用ActionContext获取数据

使用ServletActionContext类获取

(1)调用类里面静态方法,得到request对象

使用接口注入(了解)

1 让action实现接口,为了得到request对象

在action操作域对象

1 request、session、servletContext域对象

2 使用ServletActionContext类操作

四、Struts2封装获取表单数据方式

原始方式获取表单封装到实体类对象

属性封装(会用)

1 直接把表单提交属性封装到action的属性里面

2 实现步骤

(1)在action成员变量位置定义变量

- 变量名称和表单输入项的name属性值一样

(2)生成变量的set方法(把set和get方法都写出来)

3 使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体类对象里面

模型驱动封装(重点)

1 使用模型驱动方式,可以直接把表单数据封装到实体类对象里面

2 实现步骤

(1)action实现接口 ModelDriven

(2)实现接口里面的方法 getModel方法

- 把创建对象返回

(3)在action里面创建实体类对象

3 使用模型驱动和属性封装注意问题:

(1)在一个action中,获取表单数据可以属性封装,使用模型驱动封装,

不能同时使用属性封装和模型驱动封装获取同一个表单数据

如果同时使用,之后执行模型驱动

表达式封装(会用)

1 实现过程

(1)使用表达式封装可以把表单数据封装到实体类对象里面

第一步 在action里面声明实体类

第二步 生成实体类变量的set和get方法

第三步 在表单输入项的name属性值里面写表达式形式

2 把表达式封装归类到属性封装里面

比较表达式封装和模型驱动封装

1 使用表达式封装和模型驱动封装都可以把数据封装到实体类对象里面

2 不同点:

(1)使用模型驱动只能把数据封装到一个实体类对象里面

- 在一个action里面不能使用模型驱动把数据封装到不同的实体类对象里面

(2)使用表达式封装可以把数据封装到不同的实体类对象里面

五、封装到集合里面

封装数据到List集合

第一步 在action声明List

第二步 生成list变量的set和get方法

第三步 在表单输入项里面写表达式

封装数据到Map集合

第一步 声明map集合

第二步 生成get和set方法

第三步 在表单输入项的name属性值里面写表达式

案例-添加客户功能

1 模型驱动获取表单数据

2 在hibernate实现

3 添加之后到列表页面中,让列表的action执行一次

参考资料
《黑马程序员》

Struts2_day02的更多相关文章

  1. Struts2_day02讲义_使用Struts完成对客户的新增操作

  2. tomcat中项目后有括号

    引入他人项目时,由于报错,copy本地workspace下其他项目的 .settings和.project到该项目路径下 结果Eclipse 的 Server 中出现了  aaa(bbb)的情况 并且 ...

  3. Struts框架之结果页面的跳转

    1. 结果页面存在两种方式 * 全局结果页面(有很多时候我们会跳转到同一页面,所以我们可以配置一个全局结果页面,不管什么情况都会跳转到这个页面) > 条件:如果<package>包中 ...

  4. struts2框架之自定义拦截器和配置

    struts框架中也存在拦截器,只不过系统自动调用.框架自带的拦截器的配置文件所在的位置为: java Resources--->Libraries--->struts2-core-2.3 ...

  5. Struts2_day02--课程安排_结果页面配置

    Struts2_day02 上节内容 今天内容 结果页面配置 全局结果页面 局部结果页面 Result标签的type属性 Action获取表单提交数据 使用ActionContext类获取 使用Ser ...

  6. (转)Struts2访问Servlet的API及......

    http://blog.csdn.net/yerenyuan_pku/article/details/67315598 Struts2访问Servlet的API 前面已经对Struts2的流程已经执行 ...

随机推荐

  1. swift学习:第一个swift ui程序

    最近swift有点火,赶紧跟上学习.于是,个人第一个swift程序诞生了... 新建项目

  2. 使用SignalR实时Web应用程序

    实时Web应用程序能够实时地将服务器端内容推送到连接的客户端.对于ASP.NET开发人员,ASP.NET SignalR是一个向其应用程序添加实时Web功能的库.它利用了多种传输方式,根据客户端和服务 ...

  3. WebGL模型拾取——射线法二

    这篇文章是对射线法raycaster的补充,上一篇文章主要讲的是raycaster射线法拾取模型的原理,而这篇文章着重讲使用射线法要注意的地方.首先我们来看下图. 我来解释一下上图中的originTr ...

  4. OpenMPI源码剖析:网络通信原理(二) 如何选择网络协议?

    因为比较常用的是 TCP 协议,所以在 opal/mca/btl/tcp/btl_tcp.h 头文件中找到对应的 struct mca_btl_tcp_component_t { mca_btl_ba ...

  5. mui框架(一)

    1.界面初始化 初始化就是把一切程序设为默认状态,把没准备的准备好. mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支 ...

  6. LeetCode 606. Construct String from Binary Tree根据二叉树创建字符串 (C++)

    题目: You need to construct a string consists of parenthesis and integers from a binary tree with the ...

  7. 使用SSH过程中遇到的几个问题及解决方案

    一.HTTP Status 500 - org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: B ...

  8. 软件工程课程设计——第一个Spring

    开发会议框架表格: 1.我们团队Reborn针对需求功能进行热烈的讨论会议,从功能的方面分析开发,结合在一起组合为App软件,再另外思考附加的功能性娱乐项目. 2.开发过程中,以表格的形式反思开发过程 ...

  9. 对常用软件的评价(TGP腾讯游戏平台)

    1,首先说下界面,这款软件的界面有些类似于QQ的界面,登录方式和QQ的方式是一样的,可以简单的说是一款给游戏用的QQ,就是里面的用户变成了游戏 2,功能,简单的说就是将你常玩的游戏放于这游戏平台的表面 ...

  10. Software-Defined Networking:A Comprehensive Survey--Day4

    V. ONGOING RESEARCH EFFORTS AND CHALLENGES 这一节主要介绍了对SDN潜力的发挥有着重要推动作用的一些研究成果. A. Switch Designs 目前Ope ...