Struts2框架与页面的数据交互(1)--数据封装
2、Struts2框架与页面的数据交互(1)--数据封装
上接Sturts2框架入门学习:https://blog.****.net/biggerchong/article/details/84540183
目录
2.1 Struts2框架访问servlet的API
在实际开发应用中,我们会经常使用到request、response、session、application等servlet的API来实现后台与前端的数据交互;Struts2中提供了3中方法来调用servlet的这些API的手段,下面来一一介绍:
2.1.1 完全解耦和方式(了解)
完全解耦和方式,根据名字可以猜测到这种方式本质上是跟servlet没有关系的;它是通过读取servlet相应的API来取得request等参数,但是却保存为map<String , Object>的形式,也就是操作者不具备操作request本身(方法)的权限,所以这种方法限制较大,企业中使用较少。
2.1.2 使用servlet的API原生方式(重点)
通过直接获得request、session、application对象,利用这些对象来直接操作对象本身方法;这种方式在企业级使用较多。
2.1.3 接口注入方式
利用Struts2的接口实现来获取request、application对象,这种方式每获取一个对象就要实现其对应的接口方法,企业级使用比较繁琐,使用较少;但是这种方法是线程安全的,Servlet是单例的,多个程序访问同一个Servlet只会创建一个Servlet的实例,Action是多例的,一次请求,创建一个Action的实例(不会出现线程安全的问题)。
2.2 结果页面的配置
2.2.1 全局结果页面的配置
全局结果页面能被当前package下的所有的result结果识别,如果符合就执行次全局结果页面的页面跳转等相应的操作;但是如果同时存在此result结果的局部结果页面,应当执行局部页面的配置的相关操作。
表明所有success结果都能执行页面请求跳转到request2.jsp页面。
2.2.2 局部结果页面的配置
局部结果页面只在当前package的指定的action标签下有效。
2.2.3 result标签说明
result标签:配置结果页面属性
Name属性: 逻辑视图(利用name跳转到实际视图上)的名称。默认值:success
Type属性: 设置页面跳转的类型
- dispatcher: 请求转发
- redirect: 页面重定向
- chain: 请求转发到action(action到action)
- redirectAction: 重定向到action(action到action)
- stream: Struts2提供的文件下载功能
2.3 Struts2对数据的封装(两大类三小类)
2.3.1 属性驱动:提供属性的set方法(不常用)
页面:
Action:
2.3.2 属性驱动: 页面中提供表达式
优点:可以同时向多个对象中封装数据
页面:
Action:
2.3.3 模型驱动: 采用模型驱动(重点)
缺点:只能同时向一个对象中封装数据。
页面:
Action:
2.4INPUT逻辑视图
Action接口中提供了五个逻辑视图的名称:
- SUCCESS
- ERROR
- LOGIN
- INPUT :input在某些拦截器中会使用。
- NONE
使用:
取得错误信息(在页面上添加):
<@ taglib r=uri=”/struts-tags” prefix=”s”%>
<S:fielderror/>
2.5 复杂数据的封装(使用属性驱动:页面表达式)
2.5.1 封装数据到List集合中
页面:
Action:
2.5.2 封装数据到Map集合中
页面:
Action:
Struts2框架与页面的数据交互(2):https://blog.****.net/biggerchong/article/details/84573784
----谢谢阅读! -------知飞翀