我们有一个包含如下配置的地图。
Class Config {
Map<String, Boolean> enabled = new LinkedHashMap<String, Boolean> ();
从Spring Cloud Config Server填充配置POJO对象。
Key值是根据用户现在正在访问的功能而获得的。它将具有键值,例如{&#39;默认&#39;:true,&#39; login&#39;:false,&# 39;仪表盘&#39;:真正} }
在我的Servlet过滤器中,我想获取给定密钥的值(基于用户访问功能),如果密钥不存在,我想采用&#39;默认&#39;值。
我可以使用map.get来编写一个三元运算符来实现这一点但是,我可以使用SpEL(Spring Expression Language)来做同样的事情吗?
boolean isEnabled = configuration.getEnabled().get(api) == null ? configuration.getEnabled().get("default") : configuration.getEnabled().get(api);
答案 0 :(得分:1)
你所要求的并不完全清楚但是......
"['foo']?:['default']"
...如果地图包含密钥foo
,则返回其值,否则返回default
的值。
(这假定地图是评估的#root
对象。)
请参阅Elvis Operator。