Struts2 标签

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

原文地址:https://www.cnblogs.com/callyblog/p/7535869.html