Struts2值栈的相关操作


import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.util.CompoundRoot;
import com.opensymphony.xwork2.util.ValueStack;

public class ValueStackAction extends ActionSupport{
	public String testValueStack(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		ValueStack valueStack2 = ServletActionContext.getContext().getValueStack();
		ValueStack valueStack3 = (ValueStack)ServletActionContext.getRequest().getAttribute("struts.valueStack");
		System.out.println(valueStack);
		System.out.println(valueStack2);
		System.out.println(valueStack3);
		return "";
	}
	/*
	 * 把数据放入对象栈中的第一种方式
	 */
	public String addDataToObjectStack_1(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 把字符串添加到了CompoundRoot的第一个位置,我们把第一个位置称为对象栈的栈顶
		 */
		valueStack.push("aaaaa");
		return "";
	}
	
	/*
	 * 把数据放入对象栈中的第二种方式
	 */
	public String addDataToObjectStack_2(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 把字符串添加到了对象栈中
		 */
		valueStack.getRoot().add("aaaa");
		return "";
	}
	
	/*
	 * 把数据放入对象栈中的第三种方式
	 */
	public String addDataToObjectStack_3(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 把字符串添加到了对象栈中
		 *    把一个map放入到了对象栈的栈顶,"aaa"作为key,"asfd"作为value
		 */
		ActionContext.getContext().getValueStack().set("aaa", "asfd");
		return "";
	}
	
	/**
	 * 从对象栈中把数据提取出来的方式
	 *    第一种方式
	 */
	public String addDataFromObjectStack_1(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 提取栈顶的元素
		 */
		ActionContext.getContext().getValueStack().getRoot().get(0);
		return "";
	}
	
	/**
	 * 从对象栈中把数据提取出来的方式
	 *    第二种方式
	 */
	public String addDataFromObjectStack_2(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 提取栈顶的元素
		 */
		ActionContext.getContext().getValueStack().peek();
		return "";
	}
	
	/*
	 * 把对象栈的栈顶的元素移除
	 */
	public String removeDataFromObjectStack_1(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 移除栈顶的元素
		 */
		ActionContext.getContext().getValueStack().getRoot().remove(0);
		return "";
	}
	
	/*
	 * 把对象栈的栈顶的元素移除
	 */
	public String removeDataFromObjectStack_2(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		/**
		 * 移除栈顶的元素
		 */
		ActionContext.getContext().getValueStack().pop();
		return "";
	}
	
	/**
	 * 把一个key,value键值对放入到request域中
	 */
	public String putObjectToRequest(){
		ServletActionContext.getRequest().setAttribute("aaa", "aaa");
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		return "";
	}
	
	/**
	 * 把一个key,value键值对放入到application域中
	 */
	public String putObjectToApplication(){
		ServletActionContext.getServletContext().setAttribute("aaaa", "aaaa");
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		return "";
	}
	
	/**
	 * 把一个key,value直接放在map栈中
	 */
	public String putDataToMapStack_1(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		ActionContext.getContext().put("aaa", "aaaa");
		return "";
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值