java
  • jsf
  • el
  • 2013-04-11 48 views 0 likes 
    0

    在EL中设置以下条件的最佳方式是什么?JSF EL和+或条件

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

    括号似乎并没有被承认为一个有效的表达式,但它是该语句逻辑上呈现如下要求:

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

    我不确定是否理解具体问题。第一个表达式的问题究竟是什么?你有EL语法错误吗?或者是第二个表达式的问题(我可以预先知道这确实会导致Facelets中的XML语法错误(注意:XML语法错误,而不是EL语法错误))。请不要忽略问题中的**确切**错误/异常消息。 – BalusC 2013-04-11 10:43:45

    +0

    问题在于第一条语句。第二个陈述仅仅是为了说明如果我在后端做这些事情,我正在试图达到的目标。第一条语句用于selectOneMenu渲染中的项目。我没有收到错误消息,但它会导致菜单中的所有项目消失(根据我的经验,当表达式出现问题时会发生这种情况)。 – tarka 2013-04-11 10:59:12

    回答

    1

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

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

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

    相关问题