`

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 标签使用

    接下来,我们将通过几个具体的示例来详细了解 `&lt;s:if&gt;` 标签的使用方法。 ##### 示例一:简单的条件判断 ```html &lt;s:set name="country" value="China" /&gt; &lt;s:if test="%{#country == 'China'}"&gt; This is China! ...

    Struts2中使用标签实现组合查询和带分页的例子

    在Struts2框架中,`&lt;sx:&gt;`标签是Struts2 XWork库的一部分,用于增强JSP页面的功能,提供更强大的数据绑定和表单处理能力。本篇将重点讲解如何利用`sx:`标签实现组合查询和带分页功能。 首先,让我们了解下Struts2的...

    struts2 OGNL之&lt;s:property&gt;标签访问值栈(value stack)用法

    在这个主题中,我们将深入探讨OGNL(Object-Graph Navigation Language)以及如何通过`&lt;s:property&gt;`标签来访问Struts2中的值栈(Value Stack)。值栈是Struts2中一个核心的概念,它是一个存储用户请求数据和应用...

    Strust2的if-else <tr></tr>用法

    同时,可以使用`&lt;s:choose&gt;`, `&lt;s:when&gt;`, 和 `&lt;s:otherwise&gt;`标签来创建类似于switch-case的结构: ```jsp &lt;s:choose&gt; &lt;s:when test="%{status == 'active'}"&gt; &lt;!-- 活动状态的行内容 --&gt; &lt;/s:when&gt; &lt;s:when ...

    struts2中siterator 标签的使用详解 及 OGNL用法

    - **遍历数组或列表**:`&lt;s:iterator value="{'1','2','3','4','5'}" id='number'&gt;...&lt;/s:iterator&gt;` 这个例子中,`siterator` 标签将遍历给定的字符串数组,并为每个元素提供 ID 'number'。 - **利用 status 获取...

    OGNL学习笔记,包含struts2中ognl的各种用法

    在示例代码中,`&lt;s:property&gt;`标签使用OGNL表达式`#request.req`、`#session.sess`和`#application.app`分别获取了Request、Session和Application范围内的属性值。这展示了OGNL如何灵活地访问不同级别的数据。 其次...

    struts2 OGNL 表达式及各种标签的使用

    - 在JSP页面上,使用OGNL标签显示和处理数据,如`&lt;s:if test="%{user.isAdmin}"&gt;管理员界面&lt;/s:if&gt;`。 通过理解并熟练运用OGNL表达式和相关标签,开发者可以更高效地构建Struts2应用程序,实现数据的灵活绑定和...

    struct及其struct2.0标签(OGNL)讲解,有实例

    5. **动态方法调用**:`&lt;s:set&gt;`和`&lt;s:property&gt;`等标签可以使用OGNL表达式进行动态方法调用,提高代码灵活性。 6. **选择列表**:`&lt;s:select&gt;`标签可以用于创建下拉列表,通过集合数据源动态生成选项。 通过学习...

    struts2的s标签

    &lt;p&gt;名称:&lt;s:property value="name"/&gt;&lt;/p&gt; &lt;/s:iterator&gt; ``` - **说明**:遍历一个集合或数组,并对每个元素执行标签体内的内容。 25. **`&lt;s:label&gt;`** - 显示标签。 - **示例**: ```jsp &lt;s:label value=...

    OGNL访问OGNL上下文和Action上下文Struts2rarfdsafsdfasdfas

    通过阅读`Struts#.txt`文件,我们可以深入学习Struts2框架下OGNL的使用方法和技巧,了解如何有效地利用OGNL上下文和Action上下文来操纵数据,以及如何在JSP页面中使用OGNL标签进行数据展示和控制流。这将有助于提升...

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

    ognl标签的使用案例

    - `&lt;s:if&gt;`和`&lt;s:else&gt;`:这些标签允许基于OGNL表达式的条件逻辑。例如,`&lt;s:if test="%{user.age &gt; 18}"&gt;成年人&lt;/s:if&gt;&lt;s:else&gt;未成年人&lt;/s:else&gt;`。 **4. OGNL表达式** OGNL表达式可以包含点号(.)来访问对象的...

    Struts2标签使用.pdf

    13. `&lt;s:if&gt;`, `&lt;s:elseif&gt;`, `&lt;s:else&gt;`:条件判断标签,基于OGNL表达式进行逻辑判断,如`&lt;s:if test="%{age &gt; 18}"&gt;成年人&lt;/s:if&gt;`。 14. `&lt;s:div&gt;`:相当于HTML的`&lt;div&gt;`标签,用于创建区块。 15. `&lt;s:...

    struts2_标签使用方法.doc

    在Struts2中,不再像Struts1.x那样将标签库分为html、bean、logic和tiles等类别,而是统一使用一个`&lt;s&gt;`前缀的标签库,只需在JSP页面头部引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`即可使用所有标签。...

    struts2中siterator 标签的使用详解 及 OGNL用法.docx

    这篇文档详细讲解了 `s:iterator` 标签的使用方法以及 OGNL(Object-Graph Navigation Language)的用法。 1. **s:iterator 标签的基本属性** - `value`:这个属性是必需的,用于指定要迭代的集合。它可以是一个...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    这里`&lt;s:set&gt;`标签用于设置变量,`&lt;s:url&gt;`则用于生成URL。 #### 五、Struts2表单标签 Struts2的表单标签主要包括以下几种: 1. **`&lt;s:form&gt;`**:表单标签,用于创建HTML表单。 2. **`&lt;s:textfield&gt;`**:用于生成...

    ognl教程代码

    例如,可以使用 `&lt;s:if&gt;` 标签来判断某个值是否包含在另一个集合中,或者判断某个值是否不在一个集合中。 示例代码展示了如何判断 `'aa'` 是否在 `{'aaa','bbb'}` 集合中,以及 `req` 是否不在 `list` 集合中: ```...

    struts2标签详细讲解

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

    struts标签和ognl语法

    3. **`&lt;s:if&gt;`、`&lt;s:elseif&gt;` 和 `&lt;s:else&gt;`**:这些标签提供了条件逻辑,用于根据 OGNL 表达式的值来决定是否渲染某些内容。例如,`&lt;s:if test=" "&gt;...&lt;/s:if&gt;` 会检查表达式的结果,如果为真则执行其中的代码。 4...

    struts2标签库

    - **数据标签**:这类标签主要用于展示数据,包括`&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`、`&lt;s:checkbox&gt;`、`&lt;s:radio&gt;`等表单元素。 #### 六、主题和模板 Struts2允许开发者自定义页面的主题和模板,这对于统一页面样式...

Global site tag (gtag.js) - Google Analytics