この記事では、Spring ELを使用して

Map



List

から値を取得する方法を示します。実際、MapとListで動作するSpELの動作は、Javaとまったく同じです。例を参照してください:

       //get map whete key = 'MapA'
    @Value("#{testBean.map['MapA']}")
    private String mapA;

   //get first value from list, list is 0-based.
    @Value("#{testBean.list[0]}")
    private String list;

AnnotationのSpring EL

ここでは、テスト用の初期データを含む

HashMap`と

ArrayList`を作成しました。

package com.mkyong.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("customerBean")
public class Customer {

    @Value("#{testBean.map['MapA']}")
    private String mapA;

    @Value("#{testBean.list[0]}")
    private String list;

    public String getMapA() {
        return mapA;
    }

    public void setMapA(String mapA) {
        this.mapA = mapA;
    }

    public String getList() {
        return list;
    }

    public void setList(String list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "Customer[mapA=" + mapA + ", list=" + list + "]";
    }

}

package com.mkyong.core;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;

@Component("testBean")
public class Test {

    private Map<String, String> map;
    private List<String> list;

    public Test() {
        map = new HashMap<String, String>();
        map.put("MapA", "This is A");
        map.put("MapB", "This is B");
        map.put("MapC", "This is C");

        list = new ArrayList<String>();
        list.add("List0");
        list.add("List1");
        list.add("List2");

    }

    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

}


それを実行します

       Customer obj = (Customer) context.getBean("customerBean");
       System.out.println(obj);


出力

Customer[mapA=This is A, list=List0]....

===  XMLのSpring EL

Bean定義XMLファイルの同等のバージョンを参照してください。

<beans xmlns=”http://www.springframework.org/schema/beans”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”&gt

;

<bean id="customerBean" class="com.mkyong.core.Customer">
    <property name="mapA" value="#{testBean.map['MapA']}"/>
    <property name="list" value="#{testBean.list[0]}"/>
</bean>

<bean id="testBean" class="com.mkyong.core.Test"/>

</beans>

=== ソースコードをダウンロードする

ダウンロードする - リンク://wp-content/uploads/2011/06/Spring3-EL-Map-List-Example.zip[Spring3-EL-Map-List-Example.zip](6 KB)

link://tag/list/[list]link://タグ/map/[map]link://タグ/spring-el/[spring
el]link://tag/spring3/[spring3]