Struts2 中 OGNL 遍历数组、List 和 Map 方法详解
OGNL 简介
OGNL 全称 Object-Graph Navigation Language,是 Struts2 框架中一个非常重要的技术,主要用于页面动态数据的展示和提交,OGNL 通过引用类似中缀表达式的方法调用方式或操作符号,遍历对象的场景、属性或方法来获取数据。
OGNL 的语法比较简单,主要由五种元素组成:属性、方法、索引、数组和操作符号,其中属性、方法和索引都可以理解为对象属性的 getters 和 setters 方法。
数组遍历
在 Struts2 中,数组是一种最基本的对象类型,也是最常用的数据集合类型之一。接下来,我们将介绍如何使用 OGNL 遍历数组。示例代码如下:
<%
// 创建一个数组并给它赋值
String[] names = {"tom", "jerry", "lucy"};
// 将数组存放到 OGNL 上下文变量中
ServletActionContext.getValueStack(request).set("names", names);
%>
<!-- 使用 Struts2 的 OGNL 遍历数组并展示 -->
<s:iterator value="#names">
<!-- 输出遍历到的元素 -->
<s:property />
</s:iterator>
在代码中,我们先创建一个字符串数组 names 并给它赋值,然后将它存放到 OGNL 上下文变量中,再使用 Struts2 的 OGNL 遍历数组并展示。通过 value="#names"
将数组传入到 <s:iterator>
标签中,然后在标签体中通过 <s:property>
输出遍历到的元素。
List 遍历
List 是 Struts2 中常用的数据集合类型,它和数组一样,也可以使用 OGNL 遍历。示例代码如下:
<%
// 创建一个 List 并添加元素
List<String> names = new ArrayList<>();
names.add("tom");
names.add("jerry");
names.add("lucy");
// 将 List 存放到 OGNL 上下文变量中
ServletActionContext.getValueStack(request).set("names", names);
%>
<!-- 使用 Struts2 的 OGNL 遍历 List 并展示 -->
<s:iterator value="#names">
<!-- 输出遍历到的元素 -->
<s:property />
</s:iterator>
在代码中,我们首先创建一个 List 对象 names 并添加元素,将其存放到 OGNL 上下文变量中。然后使用 Struts2 的 OGNL 遍历 List 并展示,通过 value="#names"
将 List 对象传入到 <s:iterator>
标签中,然后在标签体中通过 <s:property>
输出遍历到的元素。
Map 遍历
Map 是 Struts2 中另一种常用的数据集合类型,它是以键值对的形式存储数据的,因此使用 OGNL 遍历 Map 时需要遍历 key 和 value。示例代码如下:
<%
// 创建一个 Map 并添加元素
Map<String, String> names = new HashMap<>();
names.put("1001", "tom");
names.put("1002", "jerry");
names.put("1003", "lucy");
// 将 Map 存放到 OGNL 上下文变量中
ServletActionContext.getValueStack(request).set("names", names);
%>
<!-- 使用 Struts2 的 OGNL 遍历 Map 并展示 -->
<s:iterator value="#names">
<!-- 输出遍历到的元素的 key 和 value -->
<s:property value="key" />:<s:property value="value" /><br />
</s:iterator>
在代码中,我们首先创建一个 Map 对象 names 并添加元素,然后将其存放到 OGNL 上下文变量中。接下来使用 Struts2 的 OGNL 遍历 Map 并展示,通过 value="#names"
将 Map 对象传入到 <s:iterator>
标签中,然后在标签体中通过 <s:property>
输出遍历到的元素的 key 和 value。
完结
本文介绍了在 Struts2 中使用 OGNL 遍历数组、List 和 Map 的方法,通过示例代码和代码分析让读者更好的理解 OGNL 的语法和使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2中ognl遍历数组,list和map方法详解 - Python技术站