`

ognl <s:subset>标签用法

 
阅读更多

subset标签用于取得集合的子集,该标签的底层通过org.apache.Struts2.util.Subset.IteratorFilter类提供实现。使用subset标签可以指定如下几个属性:

 

count:可选属性,指定子集中元素的个数,默认取得源集合的所有元素

 

source:可选属性,指定源集合,如果不指定,默认取得valueStack栈顶的集合,一般都会指定

 

start:可选属性,指定从源集合的第几个元素开始截取,,默认从第一个元素(start=0)开始

 

decider:可选属性,由开发者自己决定是否选中该元素

 

一般用法如下:

 

<%@ page contentType="text/html; charset=GBK" language="java"%>

<%@taglib prefix="s" uri="/struts-tags"%>

<html>

<head>

<title>使用s:subset标签截取集合元素</title>

</head>

<body>

<table border="1" width="200">

<s:subset source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}"

start="1" count="3">

<s:iterator status="st">

<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>

   <td><s:property/></td>

</tr>

</s:iterator>

</s:subset>

</table>

</body>

</html>

上面的代码的source属性指定的集合包含了5个元素,通过subset从第2个元素开始截取,只取出其中3个元素。

 

此外,Struts2还允许开发者决定截取标准,开发者只需要实现一个Decider类,实现SubsetIteratorFilter.Decider接口中的boolean decide(Object element)方法,如果该方法返回真,则表明该元素将被选入子集中。看如下代码:

 

package lee;

 

import org.apache.struts2.util.SubsetIteratorFilter;

public class MyDecider implements SubsetIteratorFilter.Decider

{

public boolean decide(Object element) throws Exception

{

   String str = (String)element;

   return str.indexOf("J2EE") > 0;

}

}

这里要求过滤不包含“J2EE”的元素,JSP页面代码如下:

 

<%@ page contentType="text/html; charset=GBK" language="java"%>

<%@taglib prefix="s" uri="/struts-tags"%>

<html>

<head>

<title>使用s:subset标签截取集合元素</title>

</head>

<body>

<s:bean id="mydecider" name="lee.MyDecider"/>

<table border="1" width="200">

<s:subset

source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}"

decider="#mydecider">

<s:iterator status="st">

<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>

   <td><s:property/></td>

</tr>

</s:iterator>

</s:subset>

</table>

</body>

</html>

分享到:
评论

相关推荐

    struts2标签详细讲解

    1. `&lt;s:param&gt;`:为其他标签提供参数,可以传递值到Action方法。 2. `&lt;s:password&gt;`:创建密码输入框,输入内容不可见。 3. `&lt;s:property&gt;`:获取属性值,可以是Action属性或OGNL表达式的结果。 4. `&lt;s:push&gt;`:将值...

    struts2.0标签$ # %的区别

    本文将详细介绍Struts2.0标签库中 `$`, `#`, `%` 的使用方法及其区别。 #### 二、Struts2.0 标签概述 ##### 1. 通用标签 - **Property** - 用于展示数据栈中的数据。 - 支持默认值设置。 - 可以控制HTML转义。...

    Struts2.1讲义

    - **语法格式**:掌握`&lt;s:generator&gt;`标签的使用方法。 - **应用场景**:生成随机数或唯一标识符等。 - **5.3.3 if、else、elseif标签使用介绍** - **语法格式**:学习条件判断标签`&lt;s:if&gt;`、`&lt;s:else&gt;`、`&lt;s:...

    简单说明Java的Struts框架中merge标签的使用方法

    `&lt;s:param&gt;`标签用来传递列表或者表达式,这里的`%{}`表示OGNL表达式,可以访问Action中的属性。 ### 示例 假设我们有两个列表`myList1`、`myList2`,它们分别包含一些元素。使用`merge`标签合并这两个列表,代码...

    struts2讲义_吴峻申

    5.3.7 subset标签使用介绍 86 5.4 Struts2数据标签简介 88 5.4.1 action标签使用介绍 88 5.4.2 bean标签使用介绍 89 5.4.3 date标签使用介绍 91 5.4.4 debug标签使用介绍 94 5.4.5 include标签使用介绍 95 5.4.6 ...

    Struts2知识点小结-非常实用

    `append`用于将多个集合合并为一个新的集合,`id`属性定义新集合的名称,`&lt;s:param&gt;`子标签指定要合并的集合。 5. `generator`标签: 它可以将字符串按照指定分隔符拆分为多个子串,生成一个集合。`count`定义...

    struts2详细讲义下载和具体实现

    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;(); map.put("contentType", "application/octet-stream"); map.put("contentDisposition", "attachment;filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\"");...

    struts2讲义

    - **知识点**: 介绍了OGNL表达式语言的基本概念和使用方法。 - **核心内容**: - OGNL是一种强大的表达式语言,可以用来获取和设置Java对象的属性。 - 在Struts2中,OGNL经常被用于标签库中,以实现动态内容的...

Global site tag (gtag.js) - Google Analytics