Struts2-整理笔记(三)结果处理跳转、获得servletAPI原生
在struts2中有很多种跳转方式如下是在struts-default.xml截取的一段源码,常用的跳转有 转发:dispatcher、重定向:redirect、转发到Action:chain、重定向到Action:redirectAction
- <package name="struts-default" abstract="true">
- <result-types>
- <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
- <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
- <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
- <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
- <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
- <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
- <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
- <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
- <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
- <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
- <result-type name="postback" class="org.apache.struts2.dispatcher.PostbackResult" />
- </result-types>
- </package>
- public class DemoAction extends ActionSupport {
- @Override
- public String execute() throws Exception {
- // request域->map(struts2并不推荐使用request原生)
- // 不推荐
- Map<String, Object> requestScope = (Map<String, Object>) ActionContext.getContext().get("request");
- // 推荐
- ActionContext.getContext().put("name", "requestTom");
- // session域->map
- Map<String, Object> sessionScope = ActionContext.getContext().getSession();
- sessionScope.put("name", "sessionTom");
- // application域->map
- Map<String, Object> applicationScope = ActionContext.getContext().getApplication();
- applicationScope.put("name", "applicationTom");
- return SUCCESS;
- }
- }
第二种方式
通过ServletActionContext
- public class Demo2Action extends ActionSupport {
- // 并不推荐
- @Override
- public String execute() throws Exception {
- // 原生request
- HttpServletRequest request = ServletActionContext.getRequest();
- // 原生session
- HttpSession session = request.getSession();
- // 原生response
- ServletActionContext.getResponse();
- // 原生servletContext
- ServletActionContext.getServletContext();
- return super.execute();
- }
- }
第三种方式
通过实现ServletRequestAware
- public class Demo3Action extends ActionSupport implements ServletRequestAware {
- private HttpServletRequest request;
- // 并不推荐
- @Override
- public String execute() throws Exception {
- System.out.println("原生request" + request);
- request.setAttribute("name", "haha");
- return super.execute();
- }
- @Override
- public void setServletRequest(HttpServletRequest arg0) {
- this.request = arg0;
- }
- }
第四种方式(推荐)
- public class ScopeAction extends ActionSupport implements SessionAware{
- Map<String,Object> session;
- @Override
- public void setSession(Map<String, Object> arg0){
- session = arg0;
- }
- @Override
- public String execute() throws Exception{
- session.put("abc","haha");
- System.out.println(session.get("abc"));
- return SUCCESS;
- }
- }
Struts2-整理笔记(三)结果处理跳转、获得servletAPI原生的更多相关文章
- Struts2学习笔记(三)——Action详解
Action是用于处理请求操作的,它是由StrutsPrepareAndExceuteFilter分发过来的. 1.Action的创建方式 1) POJO类(PlainOldJavaObjects简单 ...
- 尚学堂马士兵struts2 课堂笔记(三)
19-20 简单数据验证 例如 前台jsp 及struts.xml <a href="user/user!add?name=a" >添加用户</a> < ...
- Struts2学习笔记三:深入Action
一:Action中获取参数值 在Servlet中,我们通过doGet()/doPost()方法中的参数,获取request/response对象,然后提取参数值: 处理请求结束后,有数据需要携带返回客 ...
- Struts2学习笔记三 访问servlet
结果跳转方式 转发 <!-- 转发 --> <action name="Demo1Action" class="cn.itheima.a_result. ...
- struts2学习笔记三
一.国际化概念(了解) 1.什么是国际化 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 2.什么需要国际 ...
- JUC整理笔记三之测试工具jcstress
并发测试工具Jcstress使用教程 Jcstress 全称 Java Concurrency Stress,是一种并发压力测试工具,可以帮助研究JVM.java类库和硬件中并发的正确性. Wiki地 ...
- Struts2学习笔记(三):result配置的各项视图转发类型
Struts 1: <action path="/user" type="org.sunny.user.action.UserAction" ...> ...
- C# 《编写高质量代码改善建议》整理&笔记 --(三)泛型&委托&事件
1.泛型 基于泛型,我们可以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型, 确保类型安全. 1)总是优先考虑泛型 优点:可重用性,类型安全,高效率. 2)避免在泛型 ...
- jQuery整理笔记文件夹
jQuery整理笔记文件夹 jQuery整理笔记一----jQuery開始 jQuery整理笔记二----jQuery选择器整理 jQuery整理笔记三----jQuery过滤函数 jQuery整理笔 ...
- canvas学习之API整理笔记(二)
前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...
随机推荐
- zoj1797 Least Common Multiple 最小公倍数
Least Common Multiple Time Limit: 2 Seconds Memory Limit: 65536 KB The least common multiple (L ...
- myeclipse 中clean的作用
myeclipse中clean的作用 重新编译的功能 就是将编译好的class文件都删除后在重新生成.如果引用的jar包不能工作可以尝试下.
- jquery定时刷新数据
$(function () { setInterval("startRequest()", 3000); }); function startRequest() { $(" ...
- Ubuntu 16.04 LTS 下安装MATLAB2015b 以及Matlab system error解决办法
下载MATLAB2015b破解版 操作系统:Ubuntu 16.o4 LTS 程序文件:Matlab2015b-glnxa64破解版 解压提取文件:在ubuntu系统下可以直接提取压缩文件,得到三个文 ...
- BeginInvoke()使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- OpenSCAD 建模:矿泉水瓶盖
下载地址:https://github.com/ZhangGaoxing/openscad-models/tree/master/BottleCap 代码: module screw(r=){ ::] ...
- 【转】scatterlist && DMA
原文:scatterlist && DMA DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制.使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出 ...
- MYSQL 总结
1.数据库实质中访问的是 DBMC,数据库是一种存储介质 2.groub by 与 having 理解 group by 有一个原则,select后面的所有列中,没有使用聚合函数的列必须出现在 gro ...
- await和async更多的理解
最近有不少网友提起await和async,呵呵,C# 5引进的语法糖. 这个语法糖还真不好吃,能绕倒一堆初学的朋友,在网上也有很多网友关于这块知识点的争论,有对有错,今天在这里把这个误区好好讲讲. 在 ...
- 基于vip和twemproxy代理实现redis集群的无感知弹性扩容
目标是实现redis集群的无感知弹性扩容 关键点 1是无感知,即对redis集群的用户来说服务ip和port保持不变 2.弹性扩容,指的是在需要时刻可以按照业务扩大redis存储容量. 最原始的twe ...