【问题标题】:JSF EL and + or conditionJSF EL 和 + 或条件
【发布时间】:2013-04-11 08:56:06
【问题描述】:

在 EL 中格式化以下条件的最佳方法是什么?

#{bean.booleanValue and (bean.stringValue ne 'MYCLOSED' or bean.stringValue ne 'ALLCLOSED')}"

括号似乎不被识别为有效的表达式,但要求语句在逻辑上呈现如下:

bean.booleanValue && (bean.stringValue != 'MYCLOSED' || bean.stringValue != 'ALLCLOSED')

【问题讨论】:

  • 我不确定我是否理解具体问题。第一个表达式到底有什么问题?您收到 EL 语法错误了吗?或者是第二个表达式的问题(我可以事先告诉它,这确实会导致 Facelets 中的 XML 语法错误(注意:XML 语法错误,而不是 EL 语法错误))。请不要忽略问题中的确切错误/异常消息。
  • 问题出在第一条语句上。第二个语句只是为了说明如果我在后端执行此操作要达到的目标。第一个语句用于 selectOneMenu 渲染中的项目。我没有收到错误消息,但实际上它会导致菜单中的所有项目消失(根据我的经验,当表达式出现问题时会发生这种情况)。

标签: java jsf el


【解决方案1】:

您可以对第一个表达式使用三元运算符,如果它的计算结果为 true,则计算表达式的其余部分,否则返回 false。

例如bean.booleanValue ? bean.stringValue ne 'MYCLOSED' or bean.stringValue ne 'ALLCLOSED' : false;

这是我们目前在单个表达式中处理多个条件时使用的方法。

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 1970-01-01
    • 2012-09-01
    • 2023-03-28
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多