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日

相关文章

  • 微信小程序微信登录的实现方法详解(JAVA后台)

    下面是详细的攻略: 背景介绍 微信小程序微信登录是指用户可以通过微信账号快速登录小程序,无需再次注册账号。实现微信登录的关键在于后台服务器实现微信的登录认证功能。本文将详细讲解如何在Java后台实现微信登录的功能。 实现方法 实现微信登录功能的具体步骤如下: 1.前端页面添加微信登录按钮 <button type="primary"…

    Java 2023年5月23日
    00
  • Spring Boot中的SpringSecurity基础教程

    下面是“Spring Boot中的SpringSecurity基础教程”的完整攻略,包含两个示例。 1. Spring Security简介 Spring Security是一个基于Spring框架的安全框架,用于处理身份验证和授权问题。Spring Security的功能包括: 身份验证 授权 WEB安全 记住我 CSRF防范 Session管理 安全Ht…

    Java 2023年5月15日
    00
  • Java查看线程运行状态的方法详解

    下面是Java查看线程运行状态的方法详解的完整攻略: 什么是线程状态 Java线程有以下几种状态: NEW:刚创建线程,还未执行start()方法。 RUNNABLE:线程执行了start()方法,等待CPU调度执行。 BLOCKED:线程被阻塞,等待获取一个锁。 WAITING:线程等待另一个线程执行一个特定的action,无超时时间。 TIMED_WAI…

    Java 2023年5月19日
    00
  • sprng和struts有什么区别?

    sprng和struts有什么区别? 背景介绍 sprng(简称Spring)和struts是两个常见的Java Web框架,都是基于MVC设计模式。它们都能帮助开发人员加快Web应用程序开发的速度。 区别 1. 关注点不同 Spring框架的主要关注点在于IoC(Inverse of Control,控制反转)和AOP(Aspect-Oriented Pr…

    Java 2023年5月20日
    00
  • 基于Java字符串 “==” 与 “equals” 的深入理解

    当我们在Java中使用字符串时,经常会遇到判断两个字符串是否相等的情况。在这种情况下,通常有两种方式进行比较:使用 “==” 或者使用 “equals”。然而,这两种方式有什么不同?为什么我们不能总是使用 “==” 进行比较? “==” 和 “equals” 的区别 在Java中,”==” 运算符用于比较两个对象是否是同一个对象,即它们是否指向内存中的同一个…

    Java 2023年5月27日
    00
  • Java 中实现随机无重复数字的方法

    实现随机无重复数字的方法,在 Java 中可以通过以下步骤来实现: 创建一个包含指定数字的列表。 使用 Collections 类的 shuffle() 方法来打乱数字的顺序。 从列表中取出前几个数字。 下面是一个示例代码,展示了如何实现随机无重复数字的方法: import java.util.ArrayList; import java.util.Coll…

    Java 2023年5月26日
    00
  • 详解Maven POM(项目对象模型)

    详解 Maven POM(项目对象模型) 什么是 Maven POM? Maven POM,即 Project Object Model,是 Maven 中的项目对象模型,它是 Maven 中的基础概念之一,对 Maven 做任何的配置都需要使用到 POM,POM 是 Maven 进行构建时的核心之一。POM 文件会定义项目的基本信息,包括但不限于: 项目组…

    Java 2023年5月20日
    00
  • Java中BM(Boyer-Moore)算法的图解与实现

    Java中BM(Boyer-Moore)算法的图解与实现 前言 本文主要介绍在Java中实现BM算法。BM算法是一种高效的模式匹配算法,其核心思想是,对于模式串的每个字符,在匹配串中寻找该字符时,优先从模式串的尾部开始匹配,以减少匹配步骤。本文将详细介绍BM算法的流程,并提供两个示例以帮助读者更好地理解该算法。 算法流程 计算字符偏移量表 字符集假设有m个字…

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