配置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="stack" namespace="/stack" extends="struts-default"><action name="stack_*" class="star.july.c_valuestack.StackAction" method="{1}"><result name="success">/index.jsp</result><result name="input">/add.jsp</result></action></package></struts>

StackAction:   

package star.july.c_valuestack;
import java.util.Map;
import star.july.b_validation.Student;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.util.ValueStack;
public class StackAction extends ActionSupport{Student student;public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}public String stack(){String name = student.getName();ActionContext ac = ActionContext.getContext();//使用对象栈存储对象//获取值栈,用list的栈方式存取ValueStack vs = ac.getValueStack();//将对象放入栈中,压栈vs.push(student);//弹栈//       vs.pop();//使用映射栈存取对象//添加自己的值和栈Map map = ac.getContextMap();map.put("map", "自定义");//获取requestMap rp = (Map)ac.get("request");rp.put("rp", "请求");//获取sessionMap sp = ac.getSession();sp.put("sp", "会话");//获取application并赋值Map ap = ac.getApplication();ap.put("ap", "应用");System.out.println(student);return SUCCESS;}
}


输入值:

 <body><s:fielderror></s:fielderror><form action="<c:url value='/stack/stack_stack'/>" method="post">用户名:<input type="text" name="student.name"><br><input type="submit" value="提交"/></form>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"  %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><!-- 对象栈的取方式,用[] --><!-- 取出方式,从下表开始一直取到结束为止 -->对象栈的取方式,用[]<s:property value="[1]"/><br><s:property value="[0]"/><br><br><br><!-- 映射栈的取值方式,前面加# -->映射栈的取值方式,前面加#<br><s:property value="#map"/><br><s:property value="#request.rp"/><br><s:property value="#session.sp"/><br><s:property value="#application.ap"/><!-- 调试值栈,看值 --><s:debug></s:debug></body>
</html>

Struts值栈与Ognl相关推荐

  1. java struts2值栈ognl_Struts2的值栈和OGNL牛逼啊

    Struts2的值栈和OGNL牛逼啊 一 值栈简介: 值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务. 二 ...

  2. java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式

    只是本人的Struts2学习笔记,关于Value Stack(值栈)和OGNL表达式,把我知道的都说出来,希望对大家有用. 一,值栈的作用 记录处理当前请求的action的数据. 二,小例子 有两个a ...

  3. 关于Struts2中的值栈与OGNL表达式

    1.1.1    OGNL概述: Object Graphic Navigation Language(对象图导航语言)的缩写 * EL     :OGNL比EL功能强大很多倍. 它是一个开源项目. ...

  4. Struts2的ValueStack(值栈)介绍

    1.在之前写的一些文章中,有用到<s:debug></s:debug>这个Struts2自带的标签,会在jsp页面中产生一个Debug按钮,点击这个按钮时,就会出现ValueS ...

  5. java struts2值栈ognl_Struts2 (三) — OGNL与值栈

    一.OGNL表达式 1.概述 1.1什么是OGNL ​ OGNL是Object-Graph Navigation Language的缩写,俗称对象图导航语言. 它是一种功能强大的表达式语言,通过它简单 ...

  6. EL与OGNL以及值栈的理解

    这里先添加下在项目遇到的问题: 这两天在做论坛项目的时候,犯了一个错误:将数据放入值栈中,结果jsp页面获取不到. 困扰了许久: 总结如下: (1)每个action对应相应页面的值栈中值的获取,在属于 ...

  7. Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传

    一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...

  8. struts2值栈,OGNL表达式,interceptor

    struts2获取servlet api 第一种获取方式 获得原生request HttpServletRequest request = ServletActionContext.getReques ...

  9. (转)OGNL与值栈

    http://blog.csdn.net/yerenyuan_pku/article/details/67709693 OGNL的概述 什么是OGNL 据度娘所说: OGNL是Object-Graph ...

最新文章

  1. 最强的目标检测网络:DetectoRS 54.7 AP
  2. c#params应用
  3. 【Python】merge:数据规整化:清理、转换、合并、重塑
  4. 网络:TIME-WAIT
  5. 安装memcached服务和PECL关于memcache的两个PHP扩展
  6. c语言编程微信公众号图片直播,如何以图片的形式在微信公众号文章中添加小程序...
  7. 女朋友跟你说晚安之后仍然在线,我用Python制作脚本成功征服
  8. apache配置mpm_worker
  9. lv官网编码查询_图文讲解,如何免费自主查询商标近似情况
  10. matlab怎么将程序加密,对于MATLAB M文件怎么加密
  11. QQ聊天记录的备份和恢复(含迁移与合并)
  12. 认知-洞察力:洞察力
  13. WINDOWS 7 X64专业版SP1后续补丁包20150901(微软官方下载地址列表)
  14. Android车载蓝牙相关开发1:概述及准备
  15. canvas合并图片简单用法
  16. Teamvier提示商业用途限制使用的解决方案
  17. 罂粟花乄傷:最开心生活细节
  18. 超神学院的宇宙天体计算机,正文 第一章:银河之力被一分为二
  19. BIGEMAP中添加第三方卫星影像
  20. 互联网公司的技术博客汇总-BAT等

热门文章

  1. C++ Primer 5th笔记(6)chapter6 函数: 参数
  2. 04-CA/TA编程:hash demo
  3. 如何防止android软件被反编译,破解盗版
  4. 2017年CISCN初赛
  5. 160个CrackMe002
  6. Mysql之复制一张表的内容到新表中
  7. 2021算法竞赛入门班第一节课【枚举、贪心】习题
  8. 第一届河北工业大学程序设计竞赛校赛 【个别题的解析】
  9. 1.1.2 标准化工作及相关组织
  10. ArrayBlockingQueue队列