この記事では、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”>
;
<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]