最近在项目中发现在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; } }
相关推荐
#### 使用`s:iterator`标签遍历集合 `s:iterator`标签是Struts2中最常用的遍历集合的标签。它的主要属性包括: - **value**:指定要遍历的集合,可以是数组、列表或Map类型的对象。 - **id**:为每个遍历元素设置...
### JSP Struts2 标签详解 #### 一、简介 Struts2是一个流行的Java Web框架,提供了丰富的标签库来简化开发流程。这些标签不仅能够帮助开发者减少代码量,提高开发效率,还具备强大的功能性和灵活性。本文将详细...
- **`<s:iterator>`**:用于遍历集合中的元素,类似于Struts1中的`<logic:iterate>`,但Struts2的实现更为高效,并且支持更复杂的操作,如排序、过滤等。 #### 结论 Struts2标签库相比于Struts1提供了更多的功能和...
1. **Struts2 标签库概述** - Struts2的标签库分为核心标签库和主题标签库,核心标签库提供基本的控制流、数据展示和表单处理功能,而主题标签库则用于美化页面展示。 - 核心标签库包括:`s:text`, `s:property`, ...
- `<s:iterator>`:遍历集合,如`<s:iterator value="users">...</s:iterator>`。 - `<s:select>`、`<s:radio>`和`<s:checkbox>`:用于创建表单元素,绑定数据到Action的属性。 5. **安全问题** - OGNL注入:...
- **迭代标签**:`s:iterator`用于遍历集合或枚举对象,如数组或List。`status`属性可以获取当前循环状态。 - **组合标签**:`s:append`用于合并多个枚举值列表。 - **分割标签**:`s:generator`可以将字符串按...
- `#{Key1: Value1, Key2: Value2}`表示一个映射。 - 示例代码: ```xml <s:set name="sex" value="#{'1': '男', '2': '女'}"/> <s:property value="#sex[id]"/> ``` 3. **OGNL元素测试** - OGNL提供了...
- 配置Struts2:在`struts.xml`配置文件中定义Action类、结果页面和拦截器。 - 创建Action类:这是处理用户请求的核心,实现业务逻辑。 - 编写JSP页面:使用Struts2的标签库来展示数据和处理用户输入。 3. **...
根据给定的文件信息,我们将深入探讨Struts2框架中的标签使用及其实现机制,以及如何在实际项目中有效利用这些标签。 ### Struts2标签概述 Struts2框架是Apache软件基金会支持的一个开源Web应用框架,它继承了...
JSP页面可以通过`<s:iterator>`标签遍历集合,并且可以利用`status`变量来访问当前迭代项的索引和其他信息。如果集合中的元素也是集合,可以嵌套使用`<s:iterator>`来处理子集合。 `Struts中嵌套集合的显示示例.txt...
- `<logic:iterator>`:遍历集合。 - 示例: ```jsp <logic:notEmpty name="userlist"> <logic:iterate id="u" name="userlist"> <bean:write name="u" property="username"/> <bean:write name="u" property...
`iterator`标签可以遍历集合中的元素。 综上所述,Struts2是一个功能强大且灵活的Java Web开发框架,它不仅提供了丰富的特性,还通过其独特的设计模式和插件机制,使得开发者能够快速构建高质量的Web应用程序。通过...
2. **`<s:iterator>`**:这个标签用于遍历集合,例如 `<s:iterator value="#session.hlist">` 会迭代 `session` 中的 `hlist` 集合。在内部,可以使用 `<s:property>` 输出元素的特定属性,如 `id` 和 `title`。 3....
在示例中,`items`属性指定了要显示的数据集合,`var`属性定义了遍历集合时的迭代变量名,`imagePath`则用于设置图片路径,`action`用于处理表格的请求,而`filterable`和`sortable`分别控制表格是否可过滤和可排序...
`s:iterator`标签则用于遍历集合对象,常用于循环显示列表或数组中的数据。 Struts2的标签库[Tablib]还包括其他一些实用标签,如`s:property`用于显示Action对象的属性值,`s:url`用于创建URL链接,`s:a`标签则是一...
4. **其他标签**:例如 `<s:if>`、`<s:iterator>` 等,用于控制逻辑和循环遍历集合。 #### 四、Action类设计 1. **继承 ActionSupport 类**:为了方便使用 Struts2 提供的验证等功能,通常建议 Action 类继承自 `...
- **Iterator标签**:遍历集合数据。 - **判断标签**:条件判断,如`<s:if>`、`<s:else>`等。 - **URL标签**:生成URL链接。 - **表单标签**:如`<s:textfield>`、`<s:textarea>`等,用于创建HTML表单元素。 - **...
- **iterator**:循环遍历集合。 - **append**:字符串拼接。 - **generator**:生成随机数或序列。 - **merge**:合并对象。 - **subset**:获取集合的子集。 - **sort**:排序。 #### 四、高级应用 **4.1 ...
- **循环标签**:用于列表或集合的循环遍历。 - **UI标签**:用于实现复杂的UI布局。 **2.4 Struts2的控制器组件** 控制器是Struts2的核心组成部分之一,负责接收用户的请求并将请求转发给相应的Action处理。...