1.subset作用简介
subset:子集。
subset用于取集合的子集,底层通过org.apache.struts2.util.SubsetIteratorFilter类提供实现。
2.subset属性含义
struts2属性文档:
每个属性含义介绍:
count:可选。指定集合中元素个数,默认情况为集合全部元素。
source:可选。指定集合源,默认从值栈(ValueStack)顶部获取。
start:可选。指定从集合某个元素开始取子集,默认从0开始。
id,var:可选。两者可以相互替换使用,一旦使用,取得的子集将以id或var指定集合名存入pageContext中。
decider:可选。不常用。
3.subset实例使用
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!-- 引入struts标签库 --> <%@taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%-- <base href="<%=basePath%>"> --%> <title>struts2标签之subset实例演示</title> </head> <body> <!-- 1.默认start从0开始,count为集合全部 --> <s:subset source="{'one','two','three','four','five','six'}" > <s:iterator> <s:property/> </s:iterator> </s:subset> <br> ====================================================================== <br> <!-- 2.指定从集合第二个元素开始,下标为1.注意,集合下标从0开始 --> <s:subset source="{'one','two','three','four','five','six'}" start="1"> <s:iterator> <s:property/> </s:iterator> </s:subset> <br> ====================================================================== <br> <!-- 3.指定从集合第二个元素开始,完后类推,总的从集合中取2个元素,组成新集合 --> <s:subset source="{'one','two','three','four','five','six'}" start="1" count="2"> <s:iterator> <s:property/> </s:iterator> </s:subset> <br> ====================================================================== <br> <!-- 4.默认start从0开始,也就是从集合中第一个元素开始,count指定元素个数取集合 --> <s:subset source="{'one','two','three','four','five','six'}" start="1" count="3"> <s:iterator> <s:property/> </s:iterator> </s:subset> <br> <br> </body> </html>
one two three four five six
======================================================================
two three four five six
======================================================================
two three
======================================================================
two three four