public String getAllDepartment(){
Collection<Department> departmentList = this.departmentService.getAllDepartment();
//把departmentList放入到值栈中
/**
* 值栈
* * 值栈的生命周期
* 值栈的生命周期就是一次请求
* * 值栈的数据结构
* 对象栈
* map栈
* * 对象栈和map栈有什么区别
* 对象栈是一个list
* map栈是一个map
* * 怎么样把一个数据放入到map栈中
* * 怎么样把一个数据放入到对象栈中
*
* * 对象栈中的数据有什么样的特殊之处
*/
//把departmentList放入到了对象栈的栈顶
//ActionContext.getContext().getValueStack().push(departmentList);
//把departmentList放入到了对象栈的栈顶
//ActionContext.getContext().getValueStack().getRoot().add(0, departmentList);
//把departmentList放入到了对象栈的栈底
//ActionContext.getContext().getValueStack().getRoot().add(departmentList);
//获取对象栈的栈顶的元素
//ActionContext.getContext().getValueStack().peek();
//移除对象栈的栈顶的元素
//ActionContext.getContext().getValueStack().pop();
//移除对象栈的栈顶的元素
//ActionContext.getContext().getValueStack().getRoot().remove(0);
//把一个map放入到对象栈的栈顶
//ActionContext.getContext().getValueStack().set(key, o);
/**
* 对象栈的说明
* * 处于对象栈的对象中的属性是可以直接访问的
* * 如果在对象栈中有一样名称的属性,从栈顶开始查找,直到找到为止
* * 一般情况下,回显的数据应该放在对象栈中,这样效果比较高
* * 用ognl表达式访问对象栈,直接属性名称就可以了,不用加#
*/
//map栈
/**
* 说明
* * reuqest,session,application都在map栈中
* * 可以把一个对象放入到map中
* * ognl表达式访问map栈中的内容
* 如果一个对象在request中
* #request.对象的key值.属性
* 如果一个对象直接放入到map中
* #对象的key值.属性
* 把一个对象放入到map栈中,是不能直接访问该对象的属性
*/
//把一个对象存放到map栈中
ActionContext.getContext().put("departmentList", departmentList);
//#request.deparmentList
//ServletActionContext.getRequest().setAttribute("departmentList", departmentList);
// List<List<Department>> lists = new ArrayList<List<Department>>();
// Department department1 = new Department();
// department1.setDname("department1_name");
// Department department2 = new Department();
// department2.setDname("department2_name");
// List<Department> departmentList1 = new ArrayList<Department>();
// departmentList1.add(department1);
// List<Department> departmentList2 = new ArrayList<Department>();
// departmentList2.add(department2);
// lists.add(departmentList1);
// lists.add(departmentList2);
//
// List<Map<String, Department>> lists2 = new ArrayList<Map<String,Department>>();
// Map<String, Department> map1 = new HashMap<String, Department>();
// map1.put("d1", department1);
// Map<String, Department> map2 = new HashMap<String, Department>();
// map2.put("d2", department2);
// lists2.add(map1);
// lists2.add(map2);
//
// Map<String, List<Department>> maps = new HashMap<String, List<Department>>();
// maps.put("list1", departmentList1);
// maps.put("list2", departmentList2);
// ActionContext.getContext().put("maps", maps);
return listAction;
}
分享到:
相关推荐
Struts2 值栈的理解 Struts2 值栈是 Struts2 框架中的一种核心机制,负责存储和管理 Action 中的数据。在 Struts2 中,每个 Action 类都有一个 ValueStack 对象,该对象贯穿整个 Action 的生命周期。在 Struts2 ...
OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,而值栈则是OGNL工作的重要机制。这两者是Struts2框架的核心组件,使得数据绑定和动态方法调用变得更加便捷。 **OGNL:对象图导航语言** OGNL是...
在计算机科学领域,表达式求值是...通过阅读和分析这些代码,你可以更好地掌握表达式求值栈的工作原理,并运用到自己的项目中。无论是在编写编译器、解释器还是在其他需要计算表达式的地方,这个方法都是非常实用的。
**表达式求值栈实现 C++ 支持加减乘除运算** 此标题明确指出了本文的主要内容是关于如何利用栈这种数据结构在C++中实现基本算术表达式的求值功能。这里的关键点包括: - **表达式求值**:指的是对包含数字和运算符...
在JAVAEE应用开发中,值栈(Value Stack)是一个核心概念,主要被Struts2框架广泛使用。值栈是ActionContext中的一个数据结构,用于存储请求处理过程中的模型数据,便于视图层进行渲染。本篇文章将深入探讨值栈文件...
本主题将深入探讨如何使用Java实现一个基于值栈(Value Stack)的方法来处理带有括号的四则运算表达式。值栈是一种数据结构,它按照后进先出(LIFO)的原则存储元素,非常适合用来解决此类问题。 首先,我们需要...
在这个主题中,我们将深入探讨OGNL(Object-Graph Navigation Language)以及如何通过`<s:property>`标签来访问Struts2中的值栈(Value Stack)。值栈是Struts2中一个核心的概念,它是一个存储用户请求数据和应用...
栈实现表达式求值
1、什么是值栈 2、值栈的内部结构 3、ActionContext和ValueStatck的关系 4、如何获取值栈对象 5、向值栈存数据 6、从值栈中获取数据
表达式求值,用栈实现,C++,支持符号、括号、以及出错处理,程序健壮性应该比较好,本人自己编写,上传的压缩包中有一个运行环境为VS2005,另一个运行环境为VC6.0的源文件,可根据自己电脑的运行环境自行选择
后缀表达式,又称逆波兰表示法,是一种用于表示数学表达式的方式,它将运算符放在操作数之后,使得表达式求值的过程可以利用栈这种数据结构来简化。栈是一种具有“后进先出”(LIFO)特性的数据结构,非常适合处理这...
标题中的“表达式求值(栈)”指的是使用栈来解决计算表达式的问题,例如计算一个中缀表达式(操作符位于操作数之间,如2 + 3 * 4)或者后缀表达式(也称为逆波兰表示法,操作符位于其操作数之后,如2 3 4 * +)。...
这里主要讨论的是中缀表达式的求值方法,以及如何利用栈数据结构来实现这个过程。中缀表达式是我们日常生活中常见的数学表达式形式,如2 + 3 * 4,其中操作符位于操作数之间。 在中缀表达式求值中,我们通常采用两...
在本主题中,我们将深入探讨如何使用栈数据结构和C语言来实现表达式求值,特别是在考虑算符优先级的情况下。 首先,让我们了解什么是栈。栈是一种特殊的线性数据结构,遵循“后进先出”(LIFO)原则。在处理表达式...
用一个小小的flash来形象的演示struts2中值栈的操作过程,非常直观!
值栈(ValueStack)是Struts2的一个核心概念,类似于正常的栈,符合后进先出的 栈的特点,可以在值栈中放入、删除和查询对象。Strtus2对OGNL进行了扩充,将值栈作为OGNL的根对象。 什么是值栈?符合先进后出的特点,能给...
### 用栈解决表达式求值问题(数据结构) #### 表达式求值与栈的应用 在计算机科学中,表达式的求值是一项常见的任务,尤其是在解析数学公式、执行编程语言中的运算等方面。通常,这类任务涉及到将一个复杂的数学...
// 类似地,对于值栈的操作也进行了定义... double calval(char *exp) { op_stack os; // 定义两个栈 D_stack ds; char tmp[MAXLEN] = ""; int i = 0, leng; double dtmp, dpoptmp; opt A = {'\0', -1}; opt...
### 数据结构栈实现表达式求值 #### 一、引言 在计算机科学领域,数据结构是存储和组织数据的一种特殊方式,它不仅能够提高算法的效率,还能够简化复杂问题的解决过程。栈是一种非常重要的线性数据结构,遵循后进先...
本文将深入探讨如何利用C语言中的数据结构,特别是栈(Stack),来实现表达式的求值。我们将关注于整数表达式的计算,通过理解和应用算符优先关系,实现高效且准确的求值算法。 #### 表达式求值的概念 表达式求值...