【问题标题】:Get map value in EL by key containing quotes通过包含引号的键获取 EL 中的地图值
【发布时间】:2016-02-03 08:36:19
【问题描述】:
我正在将地图列表从 spring 控制器传递给 JSP。在 foreach 循环中,我尝试使用包含引号的键以下列方式在 map 中获取值:
<fmt:parseDate value="${account["TO_CHAR(openingdate,'YYYYMMDD')"]}" ... />
但是,我收到语法错误。请告知是否有人遇到过此问题。
注意:我无法更改映射键,因为它是从数据库返回的。
【问题讨论】:
标签:
jsp
hashmap
escaping
el
quotes
【解决方案1】:
当属性本身被双引号(或相反)并且内引号应该被转义时,您应该对 EL 字符串使用单引号。
<fmt:parseDate value="${account['TO_CHAR(openingdate,\'YYYYMMDD\')']}" ... />
注意这里的语法高亮也变得开心了。
如果这仍然失败,那么您的 EL 实现可能存在需要第二个斜线来转义斜线本身的错误(已知旧的 Apache EL 有这个问题,但 Oracle EL 没有)。然后重新转义斜线本身。
<fmt:parseDate value="${account['TO_CHAR(openingdate,\\'YYYYMMDD\\')']}" ... />