在action获取request和session,application(四)

10 篇文章 0 订阅

在后台获取request,session和application等信息,并且向里面添加信息后再页面进行读取,实现方法有:

一、使用在action声明各种类型,这种方法使用actionContext来获得,并且在actionContext中获得的值都是Map类型的。

package com.thridProject.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class WebProperty extends ActionSupport{
	private Map request;
	private Map session;
	private Map application;
	
	public WebProperty(){
		request = (Map)ActionContext.getContext().get("request");
		session = (Map)ActionContext.getContext().getSession();
		application = (Map)ActionContext.getContext().getApplication();
	}
	
	public String execute(){
		request.put("a", 1);
		session.put("b", 2);
		application.put("c", 4);
		return SUCCESS;
	}
}

二、第二种方法是实现struts提供的接口来实现,如代码:


package com.thridProject.action;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class WebProperty extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
	/**
	 * author 张春蕾
	 */
	private static final long serialVersionUID = -6256871248108647470L;
	private Map<String,Object> request;
	private Map<String,Object> session;
	private Map<String,Object> application;
	
	public void setRequest(Map<String,Object> request){
		this.request = request;
	}
	
	public void setSession(Map<String, Object> session) {
		this.session = session;
		
	}

	public void setApplication(Map<String, Object> application) {
		this.application = application;
		
	}

	public String execute(){
		request.put("a", 1);
		session.put("b", 2);
		application.put("c", 4);
		return SUCCESS;
	}
}
第二种为最常用的方法。

三、第三种方法是使用import org.apache.struts2.ServletActionContext来得到request,可以通过查看

request = ServletActionContext.getRequest();

四、实现了ServletRequestAware接口,使用依赖注入。


对于前两种得到的是Map类型的值,而且后两种得到的真实值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值