通过包含引号的键获取 EL 中的映射值

Get map value in EL by key containing quotes

我正在将地图列表从 spring 控制器传递给 JSP。在 foreach 循环内,我试图使用包含引号的键以下列方式获取地图内的值:

<fmt:parseDate value="${account["TO_CHAR(openingdate,'YYYYMMDD')"]}" ... />

但是,我收到语法错误。请告知是否有人遇到过此问题。

注意:我无法更改地图键,因为它是这样从数据库返回的。

当属性本身被双引号(或相反)并且内引号应该被转义时,您应该对 EL 字符串使用单引号。

<fmt:parseDate value="${account['TO_CHAR(openingdate,\'YYYYMMDD\')']}" ...  />

注意这里的语法高亮也变得快乐了

如果这仍然失败,那么您的 EL 实现可能存在错误,它需要第二个斜线来转义斜线本身(已知较旧的 Apache EL 存在此问题,但 Oracle EL 没有)。然后重新转义斜杠本身。

<fmt:parseDate value="${account['TO_CHAR(openingdate,\'YYYYMMDD\')']}" ...  />