控制标签
1. if/elseif/else标签
用于基本流程控制,可以单独使用if,或者和一个else,或者类似java中if/else if/else。
test:一个Boolean表达式。
2. iterator标签
用于迭代一个集合,可以是Collection,Map,Enumeration,Iterator,array。迭代过程会把每一个对象暂时压入值栈,这样标签的内部就可以直接访问对象的属性和方法,标签完毕后,值栈内容被删除。
var:指定该属性,迭代的每个元素将放入ActionContext。
value:指定迭代的集合。
status:指定一个名称放入ActionContext,通过这个名称获取迭代中的一些状态信息。
status.count当前迭代元素的总数
status.index 当前迭代元素的索引
status.even 当前迭代元素是否为偶数
status.odd 当前迭代元素是否为奇数
status.first 当前迭代的元素是否为第一个
status.last 当前迭代的元素是否为最后一个。
迭代map使用key与value访问。
3. append标签
用于将不同迭代器组合在一起,使一个迭代器迭代完成后转移到下一个迭代器进行迭代。在标签内部,使用param标签指定集合。通常和iterator一起使用。
var:指定该属性,组合后的迭代器将放入ActionContext中。
4. merge标签
也用于合并迭代,与append 标签用法类似,区别是迭代顺序不一样。
第一个迭代器的第一个
第二个迭代器的第一个
第三个迭代器的第一个,这样的顺序。
var:指定该属性,组合后的迭代器将放入ActionContext中。
5. generator标签
用于根据指定字符拆分一个字符串为迭代器,压入值栈的栈顶,可在内部使用iterator迭代,结束后将删除栈顶。
val:指定要解析的值。
separator:指定分隔符
count:指定生成迭代器中可用元素的数量。
converter:指定一个转换器,用于将各字符转换为对象。
var:保存在ActionContext中。
6. subset标签
此标签用于截取一个迭代器子集
source:指定集合源。
start:从第几个元素开始
count:指定截取的元素总数
decider:用于判断某个特定元素是否包含在子集中。
var:保存到pageContext中。
7. sort标签
根据comparator属性指定比较器对集合排序,并将排序后的集合压入栈顶。
source:集合源。
comparator:指定比较器的类,需实现java.util.Comparator接口。
var:保存到pageContext中。