struts2笔记之共享数据的3种方式和请求参数封装
2017-11-16 14:27
525 查看
sruts2的数据共享的三种方式 第一种方式 ServletActionContext类 ServletActionContext.getRequest():获取Request对象:request.setAttribute("key", value) ServletActionContext.getRequest().getSession() :获取Session对象:session.setAttribute("key", value) ServletActionContext.getServletContext() :获取ServletContext对象servletContext.setAttribute("key", value) 该方式依赖servlet的api,耦合比较高 第二种方式 ActionContext类:ActionContext actionContext = ActionContext.getContext(); actionContext .getContextMap():获取操作request域对象数据的map集合 actionContext .getSession():获取操作session域对象数据的map集合 actionContext .getApplication():获取操作context域对象数据的map集合 不依赖servlet的api,耦合性低 actionContext对象在Action对象被Struts2创建后,才被框架创建 第三种方式 RequestAware,SessionAware,ApplicationAware 接口 不依赖servlet的api 可以在Action对象的所有方法中共享Map集合
sruts2请求参数数据的封装 1.直接赋值给简单数据类型 public class UserAction extends ActionSupport{ //参数赋值(注入方式) private String name; //变量名要和jsp页面的name值一一对应 private String password; private String gender; private String[] hobit; //参数通过这个set方法注入到Action中 public void setName(String name) { this.name = name; } public void setPassword(String password) { this.password = password; } public void setGender(String gender) { this.gender = gender; } public void setHobit(String[] hobit) { this.hobit = hobit; } 2.赋值给一个javabean对象 <form action="${pageContext.request.contextPath }/data/user_register.action" method="post"> 用户名: <input type="text" name="user.name"/><br/> 密码: <input type="password" name="user.password"/><br/> 性别: <input type="radio" name="user.gender" value="男"/>男 <input type="radio" name="user.gender" value="女"/>女<br/> 爱好: <input type="checkbox" name="user.hobit" value="篮球"/>篮球 <input type="checkbox" name="user.hobit" value="足球"/>足球 <input type="checkbox" name="user.hobit" value="羽毛球"/>羽毛球<br/> <input type="submit" value="注册"/> </form> public class UserAction2 extends ActionSupport{ private User user; //使用一个javabean对象接收,变量名要和jsp页面的name一一对应 public User getUser() { return user; } public void setUser(User user) { this.user = user; } 请求参数的封装通过struts2的ParametersInterceptor拦截器进行赋值. action执行的时候会先执行validate方法对参数进行一些列的验证,如果他发现当前对象包含fieldError信息,就会直接给你跳转到input视图
相关文章推荐
- Struts2笔记之自定义封装请求参数的数据类型转换器
- php学习笔记(三十)ajax请求和接收参数的实现方式(包括json数据格式的简单处理)
- struts2——学习笔记1——struts2封装表单数据方式(三种)
- struts2——学习笔记2 通过form表单方式或者js的方式提交请求,封装boolean值的问题
- struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式
- Struts2(接受表单参数)请求数据自动封装和数据类型转换
- Struts2笔记06 封装获取表单数据方式
- 【JavaEE笔记】Struts2 (二) 结果页面配置 、获取表单提交数据 、提供获取表单数据方式 、获取数据封装到集合中
- django学习笔记---获取关联表单数据的3种方式(列表,字典,元祖)。
- Struts2系列笔记(3)---Action类的3种书写方式
- struts2学习笔记------接受请求参数
- struts2开发流程及配置,域对象对数据存储的3种方式
- Struts2请求数据自动封装和数据类型转换
- Struts2封装获取表单数据方式
- Struts2中数据封装方式
- Struts2-day01 环境搭建 源码导入 配置文件 默认action,method 详解Action 封装数据的方式
- Struts2系列笔记(3)---Action类的3种书写方式
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装(类比Struts2模型驱动)
- struts2获取请求参数-----属性驱动3种
- 【张孝祥并发课程笔记】06:多线程共享数据的方式探讨