代码之家  ›  专栏  ›  技术社区  ›  Dan

Spring EL:可访问地图的安全导航

  •  7
  • Dan  · 技术社区  · 12 年前

    我正在使用SpringEL从一组相当复杂的嵌套映射和列表中提取值。我希望能够使用这样的表达式

    [9]['firstSubKey']['secondSubKey']
    

    除了 [9]['firstSubKey'] 可能为null。我不知道如何正确使用安全导航:我试过了

    [9]['firstSubKey']?['secondSubKey']
    

    [9]['firstSubKey']?.['secondSubKey']
    

    并且两者都返回了某种解析错误。我最终通过使用

    [9]['firstSubKey']?.get('secondSubKey')
    

    但那感觉很俗气。有更好的方法吗?还是这只是SpringEL没有的功能?我使用的是弹簧3.1.3。

    与此相关的是,如果我有一个未知数量的元素的列表/数组,有没有一种方法可以安全地检查它?IE如果我有一个由4个元素组成的数组,我想要 [5] 返回null。照原样,它抛出一个 SpelEvaluationException .

    1 回复  |  直到 12 年前
        1
  •  1
  •   Gary Russell    12 年前

    我想不出比你更好的解决方案了;只有

    "['0']['a'] != null ? ['0']['a']['b'] : null"

    "size() > 5 ? [5] : null"