struts2值栈valuestack的内存图及操作

来源:互联网 发布:zank 知乎 编辑:程序博客网 时间:2024/06/03 14:38



值栈中对象栈和map栈的操作

package com.itheima09.struts2.action;import ognl.OgnlContext;import org.apache.struts2.ServletActionContext;import com.itheima09.bean.Person;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 testGetValueStack(){ValueStack valueStack = ActionContext.getContext().getValueStack();ValueStack valueStack2 = ServletActionContext.getValueStack(ServletActionContext.getRequest());ValueStack valueStack3 = (ValueStack)ServletActionContext.getRequest().getAttribute("struts.valueStack");System.out.println(valueStack);System.out.println(valueStack2);System.out.println(valueStack3);return SUCCESS;}/** * 把一个对象放入到对象栈中 * @return */public String testPutObjToObjectStack_1(){/** * 把一个对象放入到对象栈的栈顶 */ActionContext.getContext().getValueStack().push("aaaa");return SUCCESS;}public String testPutObjToObjectStack_2(){/** * 把一个对象放入到对象栈的栈顶 */ActionContext.getContext().getValueStack().getRoot().add(0,"aaa");return SUCCESS;}public String testPutObjToObjectStack_3(){/** * 把一个对象放入到对象栈的最底部 */ActionContext.getContext().getValueStack().getRoot().add("aaa");return SUCCESS;}/** * 从对象栈的栈顶提取元素 * @return */public String testGetObjFromObjectStack_1(){ActionContext.getContext().getValueStack().peek();return SUCCESS;}public String testGetObjFromObjectStack_2(){ActionContext.getContext().getValueStack().getRoot().get(0);return SUCCESS;}/** * 从栈顶把对象弹出对象栈 */public String testPopObj_1(){ActionContext.getContext().getValueStack().pop();return SUCCESS;}/** * 从对象栈中清除一个元素 * @return */public String testPopObj_2(){ActionContext.getContext().getValueStack().getRoot().remove(0);return SUCCESS;}/** * 把一个对象放入到对象栈中 * @return */public String testPutObjectToObjectStack(){Person person = new Person();person.setPid(1L);person.setName("王二麻子");//把person放入到了对象栈的栈顶ActionContext.getContext().getValueStack().push(person);ValueStack valueStack = ActionContext.getContext().getValueStack();//通过setParameter方法把对象栈的属性赋值valueStack.setParameter("name", "aaaaa");//从对象栈中把栈顶的对象提取出来person = (Person)ActionContext.getContext().getValueStack().peek();System.out.println(person.getName());return SUCCESS;}/** * 把一个字符串放入到request域中 */public String testPutStrToRequest(){ServletActionContext.getRequest().setAttribute("request_aaa", "request_aaa");ValueStack valueStack = ActionContext.getContext().getValueStack();return SUCCESS;}/** * 把一个字符串放入到application域中 */public String testPutStrToApplication(){ServletActionContext.getServletContext().setAttribute("application_aaa", "application_aaa");ValueStack valueStack = ActionContext.getContext().getValueStack();return SUCCESS;}/** * 把一个字符串放入到map栈中 */public String testPutStrToMap(){ActionContext.getContext().put("aaa", "aaa");ValueStack valueStack = ActionContext.getContext().getValueStack();return SUCCESS;}}



0 0
原创粉丝点击