struts2中标签的使用

  subset标签用于去得集合的子集,该标签的底层通过org.apache.struts2.util.Subset.IteratorFilter类提供实现.

 使用subset标签可以指定的属性有:

  1. count:    可选属性,指定子集中元素的个数.在不指定该属性情况下,默认取得源集合的全部元素   
  2. source: 可选属性,指定源集合.若不指定,默认取得ValueStack栈顶的集合.   
  3. start:可选属性,指定子集从源集合中的第几个元素开始截取.默认从第一个开始截取,默认值为0  
  4. decider:可选属性,指定由开发者自己决定是否选中该元素. 

SubsetTagAction.java

 

@Override
 public String execute() throws Exception {  
  HttpServletRequest request = ServletActionContext.getRequest();  
  
  List list_value = new ArrayList();
  list_value.add(new Integer(1));
  list_value.add(new Integer(2));
  list_value.add(new Integer(3));
  list_value.add(new Integer(4));
  list_value.add(new Integer(5));
  Object element = list_value;
  
  System.out.println(((List)element).size()+"ppp");
  request.setAttribute("list_values", list_value);
  return "subsetTag"; 
 }
 public Decider getMyDecider() {
      return new Decider() {
          public boolean decide(Object element) throws Exception {
              int i = ((Integer)element).intValue();
              return (((i % 2) == 0)?true:false);
          }
      };
      } 

 

subsetTag.jsp

 

<s:form>
   <s:subset source=" #request.list_values" decider="myDecider"> 
    <s:iterator>
     <s:property/>
    </s:iterator>
      </s:subset>
  </s:form>

 

http://localhost:8080/struts2/subsetTag.action

页面输出:2 4

 

 

 

<s:subset source="#request.list_values" start="1",count="3">   

<s:iterator status="st">   

</s:iterator>   

</s:subset/> 

 

http://localhost:8080/struts2/subsetTag.action

页面输出:2 3 4
 

 

 

 

 

 

 

你可能感兴趣的:(apache,jsp)