请参阅此表达语言
styleClass="#{obj.validationErrorMap eq null ? ' ' :
obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
即使地图为空,highlight_row
风格正在得到应用。
所以我改为
styleClass="#{empty obj.validationErrorMap ? ' ' :
obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
即使这样,highlight_row
正在得到应用。
如果地图是empty OR null
我不想应用任何样式。
有什么帮助吗?以及这种行为的原因?
Use empty
(它检查空性和空性)并通过括号对嵌套三元表达式进行分组(EL 在某些实现/版本中,即嵌套三元表达式有些问题)。因此,所以:
styleClass="#{empty obj.validationErrorMap ? ' ' :
(obj.validationErrorMap.contains('key') ? 'highlight_field' : 'highlight_row')}"
如果仍然无效(我会检查 JBoss EL 配置),请使用“正常”EL 方法:
styleClass="#{empty obj.validationErrorMap ? ' ' :
(obj.validationErrorMap['key'] ne null ? 'highlight_field' : 'highlight_row')}"
Update: 根据评论,Map
事实证明实际上是一个List
(请遵守您的命名约定)。检查是否有List
包含“正常”EL 方式的项目,使用JSTL http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/ fn:contains http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/fn/contains.fn.html(虽然没有明确记录,但它适用于List
以及)。
styleClass="#{empty obj.validationErrorMap ? ' ' :
(fn:contains(obj.validationErrorMap, 'key') ? 'highlight_field' : 'highlight_row')}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)