M S*_*ach 0 java stack struts2
我是struts2的新手,并且通过struts2进行操作,其中我遇到了声明,其中valuestack是对象和语句的堆栈,它讨论当具有相同属性名称的两个对象存储在值对象上时如何进行解析.为了清楚这一点,我开始研究它是如何在struts2中实现的.当我进入最后一级时,我发现struts2只是简单地在push方法中将对象插入零位置,同样在窥视期间,它从零位置获取对象.因此,根据我在struts2下的理解,值栈将只包含一个对象(这将是动作对象).那是对的吗?如果它不正确我们何时可以有一个场景,除了动作对象之外我们可以在valuestack中存储多个对象?
当我在http://en.wikipedia.org/wiki/Stack_(abstract_data_type)上通过堆栈时,我想到了关于堆栈的一些基本问题.在那里指出,在计算机科学中,堆栈是后进先出(LIFO)抽象数据类型和线性数据结构,并且由两个基本操作(称为推送和弹出)来表征.我同意涉及推送和弹出操作的数据结构对堆栈进行分类.但是对LIFO的东西产生怀疑.当我在java中看到数组实现时(也是堆栈并在同一链接上说明),根据我的理解,它不遵循LIFO,因为我们可以通过索引访问任何元素,而不是最后一个元素具有出来 如果我错了,请不要激怒我,因为这是我的符号.如果这是正确的,我们可以说堆栈不一定是必须的LIFO只有它应该确认推送和弹出操作吗?
不,在几乎所有情况下,值栈都不会包含单个对象,如果它只允许单个对象,它就不会是一个堆栈.
当您在位置0处插入一个对象时,它是一个推动 - 之前的位置,因为位置0将位于位置1,等等.这是正常的推动,使用该insert方法.
基本上所有正常的动作调用都会在堆栈上有多个对象.使用<s:debug>标记(下图)或转储堆栈可以轻松证明这一点.此外,<s:push>标记将在JSP页面上向堆栈添加对象,拦截器可以添加对象等.
你对堆栈LIFO的观察很有意思,但最终无关紧要:正常的堆栈操作(推送,弹出)是使它成为LIFO的原因.这并不排除堆栈实现提供额外的访问模式.

| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |