作为SpringEl doc。表示,有创建列表的el语法,然后允许我将其设置为上下文,如下所示:
List numbers = (List) parser.parseExpression("map['innermap']['newProperty']={1,2,3,4}").getValue(context);
但是,我无法找到为Map做同样事情的方法,也无法在文档中找到它。
是否有创建地图然后将其设置为上下文的简便方法?如果没有,我们怎么办呢。
如果可能,代码段会有所帮助。
提前致谢。
答案 0 :(得分:2)
现在可能了(自4.1以来,我认为):
{key:value, key:value}
答案 1 :(得分:1)
不,现在还不可能:https://jira.spring.io/browse/SPR-9472
但你可以用一些util方法来做,它应该注册为SpEL函数:
parser.parseExpression("#inlineMap('key1: value1, key2:' + value2)");
您必须将String arg解析为Map
。
<强>更新强>
从高处看它应该是这样的:
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);