(十一)Struts2中ognl中的ValueStack理解

来源:互联网 发布:淘宝直播看不到聊天 编辑:程序博客网 时间:2024/06/09 17:28

1前台的jsp页面

<%@ page language="java" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%><%@ taglib uri="/struts-tags"   prefix="s"%><html>  <head>    <title>My JSP 'index.jsp' starting page</title>    </head>  <body>      测试值栈:<br>        <a href="${pageContext.request.contextPath}/ognl/ValueStackAction_test.action">test</a><br>        <br>        <br>        <br>      测试ognl表达式的用法<br>         <a href="${pageContext.request.contextPath}/ognl/OgnlAction_test.action?cid=9">test</a><br>            测试标签<br>        <a href="${pageContext.request.contextPath}/ognl/OgnlTagAction_test.action?cid=9">test</a><br>  </body></html>


2对象的struts_ognl.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="ognl" namespace="/ognl" extends="struts-default"><action name="*_test" class="cn.yhr.ognl.{1}" method="test"><result name="ValueStack">/ognl/ValueStackAction.jsp</result></action></package></struts>

3对象的java文件

package cn.itcast.ognl;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.util.ValueStack;import com.sun.org.apache.bcel.internal.generic.NEW;@SuppressWarnings("serial")public class ValueStackAction extends ActionSupport {public String test(){System.out.println("ValueStackAction ************ test()");HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("username", "username_request");request.setAttribute("password", "password_request");Map sessionMap = ServletActionContext.getContext().getSession();sessionMap.put("username", "username_session");sessionMap.put("password", "password_session");ServletContext sc = ServletActionContext.getServletContext();sc.setAttribute("username", "username_application");sc.setAttribute("password", "password_application");//方法一:获取ValueStack对象ValueStack valueStack1 = (ValueStack)request.getAttribute("struts.valueStack");System.out.println("valueStack = "+valueStack1);/* * 插入的内容,实际上是先放置在一个map集合中,又把这个map集合放置在对象栈里 */valueStack1.set("error", "error_valueStack");valueStack1.set("msg", "msg_valueStack");//valueStack1.getRoot().add(0, new Person());//方法二:获取ValueStack对象/*ValueStack valueStack2 = ServletActionContext.getContext().getValueStack();System.out.println("valueStack = "+valueStack2);*/return "ValueStack";}}


 

0 0
原创粉丝点击