Struts2中ognl遍历数组,list和map方法详解

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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • php基于环形链表解决约瑟夫环问题示例

    PHP基于环形链表解决约瑟夫环问题 什么是约瑟夫环问题? 约瑟夫环问题是一个有名的问题:N个人围成一圈,从第K个人开始报数,第M个人出圈;以此类推,直到所有人出圈。这个问题可以用链表来解决。 解决约瑟夫环问题的关键 解决约瑟夫环问题的关键是构建一个循环链表,从链表的头开始,每m个节点删除一个节点,直到链表中只剩一个节点,这个节点就是最后的幸存者。 PHP实现…

    Java 2023年5月26日
    00
  • 一篇文章弄懂JVM类加载机制过程以及原理

    那么让我们来详细讲解一下“一篇文章弄懂JVM类加载机制过程以及原理”的完整攻略。 1. JVM类加载机制基础 在深入了解JVM类加载机制的过程之前,我们需要先了解一些相关的基础知识。 1.1 类、类加载器和类加载 在Java中,我们通常所说的类是指Java类,而Java类的定义是以.java文件为载体,通过编译器(如javac)将其转换为.class文件后生…

    Java 2023年5月26日
    00
  • Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    针对“Nginx服务器中强制使用缓存的配置及缓存优先级的讲解”的问题,我可以提供以下的完整攻略: 强制使用缓存的配置 proxy_cache_bypass 在Nginx服务器中,可以通过设置proxy_cache_bypass配置来强制使用缓存。当需要绕过缓存向后端请求或满足某些条件时,可以通过在请求中设置特定的头部来绕过缓存,格式如下: proxy_cac…

    Java 2023年6月16日
    00
  • Java中为什么重写equals()也需要重写hashCode()?

    所有类默认继承Object类 先看一下Object源码 package java.lang; public class Object { //默认调用本地的hashcode()方法 根据内存地址生成hash值 避免不了哈希冲突 public native int hashCode(); //默认调用的equals方法比较的是’==’比较 //基本类型比较的是…

    Java 2023年4月25日
    00
  • docker常用命令

    一、Docker基本概念 1.镜像(Image) Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。 docker的镜像是由 镜像名+版本 组成的。如果没有指定镜像名没有指定版本,默认是…

    Java 2023年4月23日
    00
  • java解一个比较特殊的数组合并题

    我将为您讲解如何解决一个比较特殊的Java数组合并题。我将分为以下步骤进行讲解: 确定题目要求:根据题目要求,我们需要实现一个方法,用于将两个有序数组合并为一个大的有序数组。 确定解题思路:我们可以使用双指针的方式来解决这个问题,具体思路如下: 1) 我们定义三个指针:p1指向第一个数组的开头,p2指向第二个数组的开头,p3指向新数组的开头。 2) 比较p1…

    Java 2023年5月26日
    00
  • 详解SpringMVC 基础教程 简单入门实例

    《详解SpringMVC 基础教程》是一篇介绍SpringMVC框架的文章,本文将为读者提供完整攻略,以供参考和学习。 SpringMVC 简介 SpringMVC是基于MVC设计模式的Web框架,它能够帮助开发者快速地搭建Web应用,并提供了丰富的标签和注解,使得开发Web应用变得更加简单。其优点包括组件化、灵活性、可重用性等。 SpringMVC 基础教…

    Java 2023年5月16日
    00
  • 详解springSecurity之java配置篇

    关于“详解springSecurity之java配置篇”完整攻略,我们来详细说一下。 简介 SpringSecurity是基于Spring框架的安全框架,主要解决的是在应用程序中如何安全地进行身份认证和授权。本篇文档主要讲解如何使用Java配置的方式来进行SpringSecurity的配置。 步骤 1. 添加spring-security配置依赖 在 pom…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部