Struts2(三)访问和添加request、session、application属性
来源:互联网 发布:行楷字帖 知乎 编辑:程序博客网 时间:2024/04/28 19:11
Struts2中访问和添加request、session、application属性
public String execute() {// 如果仅仅往这三个范围放入属性,建议使用这种方法ActionContext actionContext = ActionContext.getContext();// 往ServletContext里放applicationactionContext.getApplication().put("application", "application应用范围");actionContext.getSession().put("session", "session应用范围");actionContext.put("request", "request应用范围");actionContext.put("hobbies", Arrays.asList("羽毛球", "篮球", "足球", "兵乓球"));return "success";}打印输出
${applicationScope.application }<br> ${sessionScope.session }<br> ${requestScope.request }<br>
如果相应的属性参数是对象呢?
获取HttpServletRequest/HttpSession/ServletContext/HttpServletResponse对象有两种方法:
方法一、通过ServletActionContext类直接获取:
public String rsa() throws Exception{ HttpServletRequest request=ServletActionContext.getRequest(); ServletContext servletContext=ServletActionContext.getServletContext(); request.getSession(); HttpServletResponse response=ServletActionContext.getResponse(); return "scope";}方法二、实现指定接口,由struts框架运行时注入:
public class HelloWorldAction implements ServletRequestAware,ServletResponseAware,ServletContextAware{ private HttpServletRequest request; private ServletContext servletContext; private HttpServletResponse response; public void setServletRequest(HttpServletRequest req){ this.request=req;//在运行期由框架注入,不是由自己设置 } public void setServletResponse(HttpServletResponse res){ this.response=res; } public void setServletContext(ServletContext ser){ this.servletContext=ser; }}一般建议第一种方法,比较简单
struts2默认执行execute方法,若要动态执行其他方法可以在action名后加"感叹号+对应的方法名"
完整代码
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="csdn" namespace="/ask" extends="struts-default"><action name="msg" class="struts2.example.action.HelloWorldAction" method="execute"><!-- 定义处理结果与视图资源之间的关系 --><result name="success">/WEB-INF/page/showInfo.jsp</result></action></package></struts>
package struts2.example.action;import java.util.Arrays;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;public class HelloWorldAction {public String execute() {// 如果仅仅往这三个范围放入属性,建议使用这种方法ActionContext actionContext = ActionContext.getContext();// 往ServletContext里放applicationactionContext.getApplication().put("application", "application应用范围");actionContext.getSession().put("session", "session应用范围");actionContext.put("request", "request应用范围");actionContext.put("hobbies", Arrays.asList("羽毛球", "篮球", "足球", "兵乓球"));return "success";}public String rsa() throws Exception {HttpServletRequest request = ServletActionContext.getRequest();// 得到原始的request对象// request.getRealPath(path); 得到站点目录上某个文件的绝对路径ServletContext servletContext = ServletActionContext.getServletContext();request.setAttribute("request", "*********request应用范围******");request.getSession().setAttribute("session","*********session应用范围********");// HttpServletResponse response = ServletActionContext.getResponse();servletContext.setAttribute("application","********application应用范围********");return "success";}}
<pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html> <head> <title>My JSP 'showInfo.jsp' starting page</title> </head> <body> ${applicationScope.application }<br> ${sessionScope.session }<br> ${requestScope.request }<br> =============================<br> <c:forEach items="${hobbies }" var="hobby"> ${hobby}<br> </c:forEach> </body></html>
My Eclipse在Java EE5以后把jstl集成进来,不用在导入jstl相应的jar包
0 0
- Struts2(三)访问和添加request、session、application属性
- struts2添加和访问request、session、application属性
- struts2中访问和添加Application、session以及request属性
- Struts2 访问或添加request/session/application属性
- struts2访问或添加request/session/application属性
- struts2访问或添加request/session/application属性
- struts2教程:13、访问或添加request/session/application属性
- Struts2访问或添加Request、Session、Application属性
- Struts2访问或添加request/session/application属性
- struts2-13访问或添加几个属性(request/session/application属性)
- 【Struts2学习笔记(8)】访问或添加request/session/application属性获取HttpServletRequest / HttpSession / ServletContex
- Action中怎样访问和添加request/session/application属性
- struts2添加request/session/application属性
- request、session、application范围访问添加属性
- 访问或添加request / session / application属性
- Struts2 访问request、session和application对象
- Struts2 访问request、session和application对象
- [Struts2]访问request,session和application对象
- HDU 1247 Hat's Words (字典树)
- android与SharedPreference
- 写了个算分压电阻阻值的MATLAB小程序
- 在Mac电脑上为Dash制作docSet文档
- 2015年研三学习计划
- Struts2(三)访问和添加request、session、application属性
- 到底是什么样?——不用争论。
- Java文件打包成exe,在未配置安装JDK和未配置的电脑上运行
- 计算中国农历(一)
- Linux rsync 同步实践
- nginx+tomcat7+redis集群配置
- python logging
- 欢迎使用CSDN-markdown编辑器
- 06-图7. How Long Does It Take (25)