浅谈s:select 标签中list存放map对象的使用

s:select 标签是 Struts2 框架中用于生成 HTML select 元素的标签,使用 s:select 标签可以方便地生成下拉框。当需要从后台传递一个 List 集合作为下拉框的选项时,可以使用 s:select 标签中的 list 属性,将 List 集合作为 s:select 标签对应的下拉框的选项。

然而,在某些场景下,我们需要将 List 集合替换为复杂的数据结构,例如 Map 集合,这时就需要使用 s:select 标签中 list 属性存储 Map 对象的方式来完成。

使用 s:select 标签中 list 属性存放 Map 数据时,需要注意以下几点:

  1. Map 中的 key 值和 value 值分别表示的是 select 中 option 里面的 value 属性以及 option 中显示的文本值;
  2. list 属性需要使用 Struts 注解 @Action 中的方法返回值进行绑定,该方法必须返回一个 Map 集合;
  3. 在 JSP 页面中使用 s:select 标签时,需要设置 list 属性值为 ⽤于从 Struts2 Action 中返回的 map 数据的 key 值。

下面是一个示例说明:

在 Struts2 的 action 中定义一个返回 Map 对象的方法:

public Map<String,String> getMap(){
    Map<String,String> map = new HashMap<>();
    map.put("apple","苹果");
    map.put("banana","香蕉");
    map.put("orange","橘子");
    return map;
}

在 JSP 页面中使用 s:select 标签,并将 list 属性设置为对应返回的 Map 对象:

<s:select list="map" name="fruit" label="选择水果" headerKey="" headerValue="请选择水果"/>

通过设置 list 属性为 "map",就可以将返回的 Map 对象作为 s:select 标签中选项的来源,生成一个下拉框,下拉框的选项包括了 Map 中的 key:value 对应关系。

下面是另外一个示例:

在 Struts2 的 action 中定义一个返回 List<Map<String,String>> 对象的方法:

public List<Map<String,String>> getListMap(){
    List<Map<String,String>> list = new ArrayList<>();
    Map<String,String> map1 = new HashMap<>();
    map1.put("value","1001");
    map1.put("label","张三");
    Map<String,String> map2 = new HashMap<>();
    map2.put("value","1002");
    map2.put("label","李四");
    Map<String,String> map3 = new HashMap<>();
    map3.put("value","1003");
    map3.put("label","王五");
    list.add(map1);
    list.add(map2);
    list.add(map3);
    return list;
}

在 JSP 页面中使用 s:select 标签,并将 list 属性设置为对应返回的 List<Map<String,String>> 对象

<s:select list="listMap" name="user" label="选择用户" headerKey="" headerValue="请选择用户" listValue="label" listKey="value"/>

通过设置 list 属性为 "listMap",并通过 listValue、listKey 两个属性来设置 value 和 label 的值,就可以将返回的 List<Map<String,String>> 对象作为 s:select 标签中选项的来源,生成一个下拉框,下拉框的选项包括了 List 中的 Map 中的 key:value 对应关系。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈s:select 标签中list存放map对象的使用 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • java中字符串转整数及MyAtoi方法的实现

    接下来我将会详细讲解Java中字符串转整数及myAtoi方法的实现。 什么是字符串转整数? 字符串转整数是指将一个字符串表示的数字转换为整数类型的过程。在Java中,可以通过Integer.parseInt()方法将字符串转换为整数。但需要注意的是,转换时存在一些限制条件,例如字符串必须全为数字等。 myAtoi方法的实现 myAtoi()方法是LeetCo…

    Java 2023年5月26日
    00
  • AngularJS HTML编译器介绍

    AngularJS HTML编译器是AngularJS的核心模块之一,用于将HTML模板编译成可操作的JavaScript对象,并连接到作用域上。在本文中,我们将详细讲解AngularJS HTML编译器的使用和原理,并结合示例进行说明。 一、AngularJS HTML编译器介绍 1.1 HTML编译器的作用 AngularJS的HTML编译器主要作用是将…

    Java 2023年6月15日
    00
  • Spring之ORM模块代码详解

    Spring之ORM模块代码详解 Spring的ORM模块是一套全面的数据库访问和操作框架。该模块提供了各种ORM实现,如Hibernate、MyBatis、JPA等,使得开发人员可以轻松地将对象映射到关系数据库上,并且大大降低了开发复杂度。 在这篇文章中,我将详细介绍Spring ORM模块的代码设计和API使用方法,以及如何使用Spring ORM来处理…

    Java 2023年5月19日
    00
  • Java收集的雪花算法代码详解

    Java收集的雪花算法代码详解 什么是雪花算法? 雪花算法是一种能够帮助我们生成唯一ID的算法,由Twitter公司开发并在2010年开源。该算法的特点是高并发下不重复,适合在分布式系统中作为唯一ID的生成器。使用雪花算法可以有效减少分布式系统中因ID冲突造成的问题。 雪花算法的实现方式 雪花算法的实现方式如下: 首先,雪花算法规定了一个64位的二进制数, …

    Java 2023年5月19日
    00
  • Java解析使用JSON的多种方法

    以下是详细讲解“Java解析使用JSON的多种方法”的完整攻略: 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON格式的数据通常用于异步浏览器/服务器数据交换。 JSON格式的数据由键值对组成,类似于JavaScript中的对象(对象是由编号的…

    Java 2023年5月20日
    00
  • Mybatis如何使用动态语句实现批量删除(delete结合foreach)

    下面是Mybatis如何使用动态语句实现批量删除(delete结合foreach)的完整攻略。 前置知识 在了解如何使用动态语句实现批量删除之前,需要先掌握以下知识: Mybatis的基本操作 SqlSession对象 Mapper.xml配置文件 foreach标签的用法 1. 参数准备 我们假设有一个表user,里面存储了许多用户信息。我们需要批量删除其…

    Java 2023年5月20日
    00
  • 用jquery获取select标签中选中的option值及文本的示例

    获取select标签中选中的option值及文本是jQuery中的常用操作。下面是完整的攻略: 获取选中的option值 使用val()方法获取选中的option的值,示例代码如下: // HTML结构 <select id="fruit"> <option value="apple">苹果&l…

    Java 2023年6月15日
    00
  • Java如何获取指定目录文件列表

    获取指定目录文件列表是 Java 编程中常见的操作之一,可以通过 Java 的 File 类来实现。下面是获取指定目录文件列表的完整攻略: 第一步:创建 File 对象 首先需要创建一个 File 对象来表示要获取的目录。File 对象可以接受一个目录路径作为参数,例如: File directory = new File("path/to/dir…

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