请参阅此表达语言
styleClass="#{obj.validationErrorMap eq null ? ' ' :
obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
Run Code Online (Sandbox Code Playgroud)
即使地图为空,highlight_row也会应用样式.
所以我改为
styleClass="#{empty obj.validationErrorMap ? ' ' :
obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
Run Code Online (Sandbox Code Playgroud)
即便如此,highlight_row正在应用.
如果地图是empty OR null我不想要任何样式应用.
有帮助吗?和这种行为的原因?
Bal*_*usC 78
使用empty(它检查空值和空白)并用括号对嵌套的三元表达式进行分组(EL在某些实现/版本中,即嵌套三元表达式有些问题).因此,所以:
styleClass="#{empty obj.validationErrorMap ? ' ' :
(obj.validationErrorMap.contains('key') ? 'highlight_field' : 'highlight_row')}"
Run Code Online (Sandbox Code Playgroud)
如果仍然徒劳(我会检查JBoss EL配置),使用"正常"EL方法:
styleClass="#{empty obj.validationErrorMap ? ' ' :
(obj.validationErrorMap['key'] ne null ? 'highlight_field' : 'highlight_row')}"
Run Code Online (Sandbox Code Playgroud)
更新:根据评论,Map结果实际上是一个List(请处理您的命名约定).要检查a是否List包含"正常"EL方式的项目,请使用JSTL fn:contains(尽管没有明确记录,但它也适用List).
styleClass="#{empty obj.validationErrorMap ? ' ' :
(fn:contains(obj.validationErrorMap, 'key') ? 'highlight_field' : 'highlight_row')}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106524 次 |
| 最近记录: |