创造&通过SpringEl将Map设置为上下文

时间:2014-07-17 08:56:38

标签: spring-el

作为SpringEl doc。表示,有创建列表的el语法,然后允许我将其设置为上下文,如下所示: List numbers = (List) parser.parseExpression("map['innermap']['newProperty']={1,2,3,4}").getValue(context); 但是,我无法找到为Map做同样事情的方法,也无法在文档中找到它。

是否有创建地图然后将其设置为上下文的简便方法?如果没有,我们怎么办呢。

如果可能,代码段会有所帮助。

提前致谢。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

不,现在还不可能:https://jira.spring.io/browse/SPR-9472

但你可以用一些util方法来做,它应该注册为SpEL函数:

parser.parseExpression("#inlineMap('key1: value1, key2:' + value2)");

您必须将String arg解析为Map

<强>更新

请阅读以下段落:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-ref-functions

从高处看它应该是这样的:

public abstract class StringUtils {

    public static Map<String, Object> inlineMap(String input) {
       // Here is a code to parse 'input' string and build a Map
    }
}

context.registerFunction("inlineMap",
    StringUtils.class.getDeclaredMethod("inlineMap", new Class[] { String.class }));

parser.parseExpression("#inlineMap('key1: value1, key2:' + value2)")
      .getValue(context, rootObject);