Java如何使用Spring EL访问Map元素?

在上一个示例如何使用Spring EL中访问集合成员时,您已经了解了如何使用Spring EL方括号[]运算符访问集合的成员。在本文中,您将学习如何使用相同的运算符来访问Map对象的元素。

为了演示,我们将Book在上一个示例中使用相同的类来创建bean。没有相应的getter和setter的类如下:

package org.nhooo.example.spring.el;

public class Book {

    private Long id;

    private String title;

    private String author;

    private String type;

    // Getters & Setters

}

接下来,让我们创建spring配置文件。在此配置文件中,我们使用<util:map>映射ID为的来创建映射,并在映射中books添加一些键值对条目。

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:util="http://www.springframework.org/schema/util"

       xmlns:p="http://www.springframework.org/schema/p"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <util:map id="books">

        <entry key="0-201-61622-X" value="The Pragmatic Programmer"/>

        <entry key="978-1-934356-56-2" value="Hello, Android"/>

        <entry key="978-1-933988-69-6" value="Secret of The JavaScript Ninja"/>

        <entry key="978-1-449-37017-6" value="Java EE 7 Essentials"/>

        <entry key="9781935182962" value="Spring Roo in Action"/>

    </util:map>

    <bean id="book1"

          p:title="#{books['9781935182962']}"/>

    <bean id="book2"

          p:title="#{books['978-1-933988-69-6']}"/>

</beans>

定义映射后,您可以看到我们如何访问映射的元素。我们使用方括号运算符[],并且使用与访问集合成员相同的运算符。但是,我们没有将索引传递给运算符,而是传递了将要读取的map元素的键。

<bean id="book2" p:title="#{books['978-1-933988-69-6']}"/>

最后,要运行配置,您需要创建以下类:

package org.nhooo.example.spring.el;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpELMapExample {

    public static void main(String[] args) {

        ApplicationContext context =

            new ClassPathXmlApplicationContext("spel-map.xml");

        Book book1 = (Book) context.getBean("book1");

        Book book2 = (Book) context.getBean("book2");

        System.out.println("book1.getTitle() = " + book1.getTitle());

        System.out.println("book2.getTitle() = " + book2.getTitle());

    }

}

该代码产生的输出示例如下所示:

book1.getTitle() = Spring Roo in Action

book2.getTitle() = Secret of The JavaScript Ninja

                       

以上是 Java如何使用Spring EL访问Map元素? 的全部内容, 来源链接: utcz.com/z/315865.html

回到顶部