Spring EL Lists,Maps實例

在這篇文章中,我們將介紹如何使用Spring EL從 Map 和 List 中獲得值。事實上,使用SpEL與 Map 和 List 的工作方式與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;

Spring EL以註解的形式

在這裏,創建了一個HashMap和ArrayList,並添加了一些初始測試數據。

package com.yiibai.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.yiibai.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 MapA");
    map.put("MapB", "This is MapB");
    map.put("MapC", "This is MapC");

    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 MapA, list=List0]

Spring EL以XML的形式

請參閱在XML文件定義bean的等效版本。

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

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

下載代碼  –  http://pan.baidu.com/s/1gdTxfKv