浅谈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读取文件的简单实现方法

    下面我会详细讲解“Java读取文件的简单实现方法”的完整攻略。 什么是Java读取文件? Java读取文件是指通过Java程序去读取本地或服务器上的文件,可以实现从文件中获取数据、修改数据等功能。在Java中,可以使用多种方法来读取文件,比如使用字节流或字符流等。 如何使用Java读取文件? 使用字节流读取文件 字节流可以读取任何类型的文件,比如文本文件、图…

    Java 2023年5月19日
    00
  • java自旋锁和JVM对锁的优化详解

    Java自旋锁和JVM对锁的优化详解 在多线程并发编程中,锁的使用尤为重要。Java中的锁主要包括synchronized关键字和ReentrantLock类,这些锁在实现上都涉及到了自旋锁和JVM对锁的优化。 什么是自旋锁 自旋锁是指当一个线程获得锁后,发现其他线程正在使用该锁,则该线程不会立即阻塞,而是一直循环等待直到其他线程释放该锁。 在Java中,s…

    Java 2023年5月26日
    00
  • 吃透Redis面试八股文

    Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的。…

    2023年4月24日
    00
  • 让Java后台MySQL数据库能够支持emoji表情的方法

    当我们在Java后台使用MySQL数据库时,有时需要支持emoji表情。但是MySQL默认情况下是不支持emoji的,所以我们需要进行一些配置和操作来使其支持。 以下是支持emoji表情的完整攻略: 步骤一:修改MySQL的字符集 MySQL数据库默认使用的是utf8字符集,而utf8字符集只支持一部分的Emoji表情。当我们想要支持完整的Emoji表情时,…

    Java 2023年5月20日
    00
  • 详解Java中自定义注解的使用

    下面是详解Java中自定义注解的使用的完整攻略。 什么是注解 注解是Java语言中的元数据,是JDK5.0版本以后新增的特性。它可以为Java代码提供额外的信息,被用于代码的分析、编译和运行时的处理等操作。注解本身不会对代码的逻辑产生影响,它只是提供了额外的元数据信息,使得程序员可以在代码上进行更精细的控制。 自定义注解的基本结构 自定义注解定义格式位于Ja…

    Java 2023年5月26日
    00
  • 别了Java EE! 正式更名为Jakarta

    针对Java EE正式更名为Jakarta的问题,我会进行详细的讲解,包括以下几点: 1. 背景 在2017年8月,Oracle公司宣布将 Java Enterprise Edition(EE)的所有商标和相关的Java EE规范文档转移到Eclipse基金会。在经过一段时间的讨论、咨询和协作后,Java EE正式在2018年9月转交给了 Eclipse 基…

    Java 2023年5月19日
    00
  • jdbc操作mysql数据库实例

    一、前言 Java Database Connectivity(JDBC)是Java提供的一种操作各种关系型数据库的API。本攻略将介绍如何使用JDBC操作MySQL数据库,包括连接MySQL数据库、创建表、插入记录、查询记录、更新记录和删除记录等操作。 二、依赖和环境需求 在开始实践之前,我们需要准备以下依赖和环境: MySQL数据库(可以是本地安装的,也…

    Java 2023年6月16日
    00
  • Mybatis中动态SQL,if,where,foreach的使用教程详解

    “Mybatis中动态SQL,if,where,foreach的使用教程详解”是一个相当重要的主题,因为它可以帮助我们在Mybatis中更好地处理和生成SQL语句。在这篇攻略中,我们将会从头开始,详细介绍如何使用Mybatis来生成精准的、动态的SQL语句,并且辅以两条相应的示例。 什么是动态SQL? 在Mybatis中提供了一系列动态SQL元素,这些元素允…

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