Struts2的结果类型、ServletAPI获取、参数接收
来源:互联网 发布:邮政网络培训学院官网 编辑:程序博客网 时间:2024/06/05 06:34
结果类型:Struts2共11中结果类型
转发:/hello.jsp
重定向:/hello.jsp
转发到Action(不常用;此种格式为标准格式;当下一目标资源不在同一namespace下):
Demo1Action
/
重定向到Action:
HelloAction_hello
/
全局结果配置:
/error.jsp
Struts2中的SevletAPI获取:
原理:依赖ActionContext对象(Struts2的数据中心),其本质是map。
存放有:原生request、原生response、原生servletContext、request域(从request中抽取出来、本 质上是map)、session域、application域、attrs、params、ValueStack(值栈)……很多
ActionContext生命周期:
每次请求都会创建一个ActionContext对象
ActionContext对象创建后放在了哪里?
ThreadLocal
请求到来时,ActionContext对象创建并被放置到ThreadLocal中与线程绑定。可以确保本次请 求范围内,获取ActionContext对象时,从ThreadLocal中拿到。☆替代request域
三种方式获取ServletAPI:
获取解耦API:通过ActionContext对象 (常用)
//获取 ActionContext
ActionContext context = ActionContext.getContext();
//获取解耦application域
Map application = context.getApplication();
application.put("name", "applicationName");
// 获取 解耦session域
Map session = context.getSession();
session.put("name", "sessionName");
//struts2官方不推荐使用request域。推荐使用ActionContext本身作为request域取代原本的 request域,用法依旧沿袭request的用法,只不过实际上是从ActionContex中存取
context.put("name", "requestName");
获取原生ServletAPI:通过ServletActionContext (常用)
//获取原生request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("name", "requestName");
//获取原生response
HttpServletResponse response = ServletActionContext.getResponse();
//获取原生session
HttpSession session = request.getSession();
session.setAttribute("name", "sessionName");
//获取原生ServletContext
ServletContext sc = ServletActionContext.getServletContext();
sc.setAttribute("name", "applicationName");
实现接口方式获取API:需要什么就实现什么的接口。 (不常用)
步骤:
1. 实现相应接口,比如ServletRequestAware | ServletContextAware
2. 在自己的action类中定义私有属性
3. 在重写的接口的方法内部使用属性接收方法参数传入的API对象
4. 在可执行的方法内部使用属性即可。
参数接收:
简单参数接收:
属性驱动:在Action中准备与表单提交相同的属性,struts2会自动将提交的参数的值封装到属性中 (常用)
注:struts2接收参数时可以自动进行类型转换。支持8大基本数据类型+Date类型(根据浏览器标识出 中文访问者,时间格式为yyyy-MM-dd)
问题:Action对象的生命周期?答:每次请求都会创建与当前请求对应的Action对象
对象驱动:将表单提交参数封装到对象当中。(不常用)
步骤:
1. 在表单中设置input标签属性name="user.name"/name="user.age"
2. 创建user实体类
3. 在自己的Action类中定义属性user,注意:定义get/set方法
4. 在可执行的方法中即可直接使用user属性了
模型驱动:同样将表单数据封装到对象中。(常用;且类似于对象驱动)
步骤:
1. 表单input属性正常设置,即对应实体类的属性
2. 自定义Action类定义私有属性user,并赋值。即private User user = new User();
3. 自定义Action类实现ModelDriven接口,重写方法 ,将属性user返回
4. 在可执行的方法中即可直接使用user属性了
复杂类型参数接收:数组、List集合、Map集合
步骤:
1. 在自定义Action类中,定义属性,比如String[]、List、Map
2. 在表单input中:
arr:
arr:
arr:
list:
list:
list:
map:
map:
3. 在可执行方法中即可使用接收参数的属性了。
待续……
- Struts2的结果类型、ServletAPI获取、参数接收
- Struts2--获取ServletAPI的方式
- 【SSH】Struts2学习(二)(待完善)结果视图、访问ServletAPI、数据封装(获取页面参数)、Struts校验
- struts2的开发(获取ServletAPI对象)
- Struts2获取servletAPI的几种方式
- Struts2获取/访问ServletAPI
- Struts2获取ServletAPI
- Struts2获取ServletAPI
- struts2获取ServletAPI
- struts2学习笔记(2)---Action中访问ServletAPI获取Map类型的Servlet元素
- struts2学习笔记(3)---Action中访问ServletAPI获取真实类型的Servlet元素
- Struts2的参数接收
- struts2 参数的接收
- struts2学习笔记 -- day04 ServletAPI、参数封装的方式
- Struts2获取ServletApi对象的4种方法
- 总结Struts2获取servletAPI的几种方式
- Struts2中,三种获取ServletAPI的方法
- struts2的action之间的参数传递和结果类型
- 浮点运算的优化
- Spring概述、框架搭建、相关概念、配置详解(XML)和配置详解(注解)
- 函数参数中使用const
- Struts框架_概述、搭建、架构、配置详解及ActionAPI
- Qt5安装后QtCreator控件,代码中中文输入法不可用
- Struts2的结果类型、ServletAPI获取、参数接收
- 惊人的超速学习实验
- 使用jpush-client-sdk实现极光jpush
- Hibernate持久化类、主键生成策略、持久户对象、一级缓存、事务和五种检索方式
- 优秀电子工程师成长之道【转】
- Hibernate概述、入门、配置文件详解、四大API详解
- Servlet文件上传
- 一篇关于齐纳二极管的不错的论述【转载】
- IDEA中一个很有用的内存调试插件