`

struts2标签遍历集合过滤:{?1==1}[0]

阅读更多

最近在项目中发现在jsp页面上遍历集合还有这种写法:

 

personlist为List<Person>,遍历时过滤掉name属性为“jack”的元素:

<s:iterator value="personList.{?!name.equals(\"jack\")}"> 
<s:property value="name"/>--- 
<s:property value="password"/> 
</s:iterator>

 persons为Set<Person>,遍历时只取第一个元素:

<s:iterator value="persons.{?1==1}[0]"> 
<s:property value="name"/>--- 
<s:property value="password"/><br/> 
</s:iterator>

 

 Person类为:

public class Person { 
private String name; 
private String password; 

public Person(String name,String password){ 
this.name = name; 
this.password = password; 
} 

public String getName() { 
return name; 
} 
public void setName(String name) { 
this.name = name; 
} 
public String getPassword() { 
return password; 
} 
public void setPassword(String password) { 
this.password = password; 
} 
}

 

 

 

 Action为:

public class TestAction extends ActionSupport { 
private List<Person> personList; 
private Set<Person> persons; 

public List<Person> getPersonList() { 
return personList; 
} 
public void setPersonList(List<Person> personList) { 
this.personList = personList; 
} 
public Set<Person> getPersons() { 
return persons; 
} 
public void setPersons(Set<Person> persons) { 
this.persons = persons; 
} 

@Override 
public String execute() throws Exception { 

personList = new ArrayList<Person>(); 
personList.add(new Person("jack","1111")); 
personList.add(new Person("jack1","2222")); 
personList.add(new Person("jack2","3333")); 
personList.add(new Person("jack3","4444")); 
personList.add(new Person("jack4","5555")); 

persons = new HashSet<Person>(); 
persons.add(new Person("jack","1111")); 
persons.add(new Person("jack1","2222")); 
persons.add(new Person("jack2","3333")); 
persons.add(new Person("jack3","4444")); 
persons.add(new Person("jack4","5555")); 
//下面两行代码是将集合放入栈上下文中
//ActionContext.getContext().put("personList", personList); 
//ActionContext.getContext().put("persons", persons); 
return Action.SUCCESS; 
} 
}

  

分享到:
评论

相关推荐

    struts2遍历集合

    #### 使用`s:iterator`标签遍历集合 `s:iterator`标签是Struts2中最常用的遍历集合的标签。它的主要属性包括: - **value**:指定要遍历的集合,可以是数组、列表或Map类型的对象。 - **id**:为每个遍历元素设置...

    Jsp struts2标签大全

    ### JSP Struts2 标签详解 #### 一、简介 Struts2是一个流行的Java Web框架,提供了丰富的标签库来简化开发流程。这些标签不仅能够帮助开发者减少代码量,提高开发效率,还具备强大的功能性和灵活性。本文将详细...

    struts2标签库

    - **`&lt;s:iterator&gt;`**:用于遍历集合中的元素,类似于Struts1中的`&lt;logic:iterate&gt;`,但Struts2的实现更为高效,并且支持更复杂的操作,如排序、过滤等。 #### 结论 Struts2标签库相比于Struts1提供了更多的功能和...

    Struts2 标签使用

    1. **Struts2 标签库概述** - Struts2的标签库分为核心标签库和主题标签库,核心标签库提供基本的控制流、数据展示和表单处理功能,而主题标签库则用于美化页面展示。 - 核心标签库包括:`s:text`, `s:property`, ...

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

    - `&lt;s:iterator&gt;`:遍历集合,如`&lt;s:iterator value="users"&gt;...&lt;/s:iterator&gt;`。 - `&lt;s:select&gt;`、`&lt;s:radio&gt;`和`&lt;s:checkbox&gt;`:用于创建表单元素,绑定数据到Action的属性。 5. **安全问题** - OGNL注入:...

    Struts2 标签库讲解

    - **迭代标签**:`s:iterator`用于遍历集合或枚举对象,如数组或List。`status`属性可以获取当前循环状态。 - **组合标签**:`s:append`用于合并多个枚举值列表。 - **分割标签**:`s:generator`可以将字符串按...

    精通struts2的ognl表达式

    - `#{Key1: Value1, Key2: Value2}`表示一个映射。 - 示例代码: ```xml &lt;s:set name="sex" value="#{'1': '男', '2': '女'}"/&gt; &lt;s:property value="#sex[id]"/&gt; ``` 3. **OGNL元素测试** - OGNL提供了...

    struts2简单例子

    - 配置Struts2:在`struts.xml`配置文件中定义Action类、结果页面和拦截器。 - 创建Action类:这是处理用户请求的核心,实现业务逻辑。 - 编写JSP页面:使用Struts2的标签库来展示数据和处理用户输入。 3. **...

    struts2 标签

    根据给定的文件信息,我们将深入探讨Struts2框架中的标签使用及其实现机制,以及如何在实际项目中有效利用这些标签。 ### Struts2标签概述 Struts2框架是Apache软件基金会支持的一个开源Web应用框架,它继承了...

    Struts中嵌套集合的显示示例

    JSP页面可以通过`&lt;s:iterator&gt;`标签遍历集合,并且可以利用`status`变量来访问当前迭代项的索引和其他信息。如果集合中的元素也是集合,可以嵌套使用`&lt;s:iterator&gt;`来处理子集合。 `Struts中嵌套集合的显示示例.txt...

    Struts详细资料整理

    - `&lt;logic:iterator&gt;`:遍历集合。 - 示例: ```jsp &lt;logic:notEmpty name="userlist"&gt; &lt;logic:iterate id="u" name="userlist"&gt; &lt;bean:write name="u" property="username"/&gt; &lt;bean:write name="u" property...

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    `iterator`标签可以遍历集合中的元素。 综上所述,Struts2是一个功能强大且灵活的Java Web开发框架,它不仅提供了丰富的特性,还通过其独特的设计模式和插件机制,使得开发者能够快速构建高质量的Web应用程序。通过...

    struts标签和ognl语法

    2. **`&lt;s:iterator&gt;`**:这个标签用于遍历集合,例如 `&lt;s:iterator value="#session.hlist"&gt;` 会迭代 `session` 中的 `hlist` 集合。在内部,可以使用 `&lt;s:property&gt;` 输出元素的特定属性,如 `id` 和 `title`。 3....

    ec标签在struts2.0中的使用

    在示例中,`items`属性指定了要显示的数据集合,`var`属性定义了遍历集合时的迭代变量名,`imagePath`则用于设置图片路径,`action`用于处理表格的请求,而`filterable`和`sortable`分别控制表格是否可过滤和可排序...

    Struts2 标签库 [Tablib]

    `s:iterator`标签则用于遍历集合对象,常用于循环显示列表或数组中的数据。 Struts2的标签库[Tablib]还包括其他一些实用标签,如`s:property`用于显示Action对象的属性值,`s:url`用于创建URL链接,`s:a`标签则是一...

    struts2.0的总结

    4. **其他标签**:例如 `&lt;s:if&gt;`、`&lt;s:iterator&gt;` 等,用于控制逻辑和循环遍历集合。 #### 四、Action类设计 1. **继承 ActionSupport 类**:为了方便使用 Struts2 提供的验证等功能,通常建议 Action 类继承自 `...

    struts2自学文档

    - **Iterator标签**:遍历集合数据。 - **判断标签**:条件判断,如`&lt;s:if&gt;`、`&lt;s:else&gt;`等。 - **URL标签**:生成URL链接。 - **表单标签**:如`&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`等,用于创建HTML表单元素。 - **...

    struts2教程我在培训时用的

    - **iterator**:循环遍历集合。 - **append**:字符串拼接。 - **generator**:生成随机数或序列。 - **merge**:合并对象。 - **subset**:获取集合的子集。 - **sort**:排序。 #### 四、高级应用 **4.1 ...

    Struts2 框架概述

    - **循环标签**:用于列表或集合的循环遍历。 - **UI标签**:用于实现复杂的UI布局。 **2.4 Struts2的控制器组件** 控制器是Struts2的核心组成部分之一,负责接收用户的请求并将请求转发给相应的Action处理。...

Global site tag (gtag.js) - Google Analytics