标签:一个 入栈 元素 变量 方法 tag list 作用域 迭代
1.<s:property value=""/>
输出value中的值,在没有value属性的情况下,该标签输出的是对象栈的栈顶的值
2. <s:set value="" var="" scope="" />
var变量
1.value先取出存在request中的值
2.
a.如果scope没有写,var的值将作为key出现在valuestack的map中
b.如果scope的作用域为request,则var的值将出现在request中
3.<s:push value=""/>
利用这个标签可以把value中的值放入到对象栈栈顶,但是这个标签一结束,栈顶移除
4.<s:bean />
通过s:bean标签,就把person对象放入到了栈顶
当s:bean标签结束了以后,栈顶的值就移除
如果没有var属性
s:bean标签会把person对象放入栈顶
如果s:bean标签结束以后,栈顶的person对象会被移除
如果有var属性
s:bean标签会把person对象放入到栈顶
如果s:bean标签结束以后,栈顶的person对象将会移除
在valuestack的map中会存放key值为var属性的值,value为person对象
5.<s:iterator />
a.对象集合为外在变量,不是action中的属性
将对象集合放入对象栈中
top表示栈顶
s:iterator如果没有value属性,则默认输出对象栈顶的值
s:iterator如果有value属性,并且value属性的值为top,则输出的也是对象栈顶的值
当s:iterator第一次循环的时候,会把list中的第一个元素放入到栈顶,如果循环完第一个元素
则会把第一个元素移除栈顶,list中的第二个元素将到达栈顶。这样循环,直到iterator迭代完毕。
b.如果对象集合是action中的属性
因为在后台,list被作为action的属性存放了,因为是TagAction的属性,而TagAction的是存放在对象栈中的
存放在对象栈中。在这里,s:iterator的value属性的值就是为了找到list.
当s:iterator第一次循环的时候,会把list中的第一个元素放入到栈顶,如果循环完第一个元素
则会把第一个元素移除栈顶,list中的第二个元素将到达栈顶。这样循环,直到iterator迭代完毕。
如果后台通过put方法,把list放入到了map中,s:iterator中的value可以这样写:list,
也可以这样写:#list
标签:一个 入栈 元素 变量 方法 tag list 作用域 迭代
原文地址:http://www.cnblogs.com/callyblog/p/7535869.html