假设仅仅是通过request、session、application传递数据,则不须要获取对应的对象也能够传递数据,代码例如以下:

ScopeAction.java:

package com.itheima.action;import com.opensymphony.xwork2.ActionContext;public class ScopeAction {public String execute() {/** 我们这里不通过字段(加入setXXX、getXXX方法)传递数据,我们想着通过域(request、session、application)* 传递数据。怎么样才干做到呢?struts2採用低侵入式,action与servlet没有不论什么关联,怎么才干获取域并传递数据呢,* 这时就用到了ActionContext类*/ActionContext context = ActionContext.getContext();context.getApplication().put("application", "application域");//通过ServletContext域传递数据context.getSession().put("session", "session域");//通过Session域传递数据context.put("request", "request域");//通过Request域传递数据return "success";}
}

struts2.xml:

<action name="scopeAction_*" class="com.itheima.action.ScopeAction" method="{1}"><result name="success">/msg.jsp</result>
</action>

msg.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>${applicationScope.application }<br/>${sessionScope.session }<br/>${requestScope.request }<br/>
</body>
</html>

地址栏:

=============================================================================================

上述方式没有获取到域对象。这里我们也能够通过其它方法获取域对象:

在上述的ScopeAction中加入例如以下方法:

public String doexe() {HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("request", "请求域");ServletContext context = ServletActionContext.getServletContext();context.setAttribute("application", "应用域");HttpSession session = request.getSession();session.setAttribute("session", "会话域");
//      HttpServletResponse response = ServletActionContext.getResponse();return "success";}

其它和上述不变。然后地址栏中输入:

===============================================================================================

另外另一种方式就是通过框架注入:

Scope2Action.java:

package com.itheima.action;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;public class Scope2Action implements ServletRequestAware, ServletResponseAware, ServletContextAware{private HttpServletRequest request;private HttpServletResponse response;private ServletContext servletContext;@Overridepublic void setServletContext(ServletContext arg0) {this.servletContext = arg0;}@Overridepublic void setServletResponse(HttpServletResponse arg0) {this.response = arg0;}@Overridepublic void setServletRequest(HttpServletRequest arg0) {this.request = arg0;}public String execute() {request.setAttribute("request", "请 求 域");request.getSession().setAttribute("session", "会 话 域");servletContext.setAttribute("application", "应 用 域");return "success";}}

struts2.xml:

<action name="scope2Action" class="com.itheima.action.Scope2Action"><result name="success">/msg.jsp</result>
</action>

struts2在action中获取request、session、application,并传递数据相关推荐

  1. struts2的action中获得request response session 对象

    在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...

  2. 通过ActionContext获取request session application 以及ActionContext的简单解析

    ActionContext:action的上下文对象. 获取application : // 获取ActionContext对象 是action的上下文对象 ActionContext actionC ...

  3. Struts2.x中获取request,response,session的方式

    Struts2.x中获取request,response,session的方式有两种:非IOC方式和IOC方式: 一:非IOC方式: 要获得request,response,session 这些对象, ...

  4. Action中取得request,session的四种方式

    Action中取得request,session的四种方式 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象 ...

  5. struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式

    本文演示了JSP中获取HTTP参数的几种方式,还有action中获取HTTP参数的几种方式. 1. 创建JSP页面(testParam.jsp) <%@ page language=" ...

  6. 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值

    第一种方法:获取结果String类型   在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,). 所以在 ...

  7. 暑期项目经验(九) -- request session application

    request.session.application 一.基础知识 可以看看  浅谈:request,session,application (http://blog.csdn.net/hzc543 ...

  8. SpringMvc4中获取request、response对象的方法

    springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...

  9. JSP之四大作用域(pageContext,request,session,application)

    JSP的四大作用域的存储和获取数据的方式一样,差别在于取值的范围不同. 四大域各自作用范围为: pageContext:当前JSP页面有效 request:请求有效 session:会话有效(关闭浏览 ...

最新文章

  1. 415 (Unsupported Media Type)
  2. php循环给数组每个值加引号,php数组非数字键名加引号的必要性!
  3. Android Kotlin Coroutines ktx扩展
  4. 正确获取硬盘序列号源码
  5. 上汽乘用车-大数据岗位面试(失败经历)
  6. c++ 检查缓冲大小与记录大小是否匹配_后端程序员不得不会的 Nginx 转发匹配规则...
  7. 【7】jQuery学习——入门jQuery选择器之过滤选择器-可见性过滤选择器
  8. 什么是云计算基础设施? | 技术头条
  9. django与grpc融合的过程
  10. LUCK——组合数学
  11. 面向对象(基础oop)之继承总结
  12. Git@OSC 已经支持 Gitlab Control 移动客户端
  13. 交通信息工程 实验四:交通仿真实验(二)
  14. 人大金仓数据库使用uuid
  15. 百度OCR图片内容识别
  16. 工作中的十大棘手难题
  17. UReport2——一款报表引擎,提供基于网页的报表设计器
  18. JSON必备工具之Json Viewer
  19. HTML 表单 表格 列表
  20. 百度输入法输入汉字却显示英文

热门文章

  1. Http请求返回最外层的模型
  2. html 段前空格_前端 -- HTML
  3. android语音控制歌曲播放,Amazon Music应用程序已支持Alexa语音控制歌曲播放
  4. 电脑硬件知识学习_计算机的发展史,你对硬件知识了解多少,带大家了解一下....
  5. oracle对某两列求和再求和_只会SUM函数求和,试试这5种求和函数,十倍提高工作效率...
  6. 搭建gradle环境
  7. idea编译器没有tomcat的选项解决方案
  8. 虚拟机搭建Hadoop集群学习笔记(1)
  9. 计算机组装的虚拟仿真实验报告,组装计算机的虚拟实验室
  10. 系统学习深度学习(二十八)--DSD