【问题标题】:JSF EL expression compare string valueJSF EL 表达式比较字符串值
【发布时间】:2016-12-16 15:15:14
【问题描述】:

我正在尝试评估返回值(字符串)的 EL 表达式(方法表达式?),如果该值等于“bar”,那么我想渲染标签。

<p:tab rendered="#{bean.getAnswer('foo').answer == "bar"}" />

但是我收到以下错误消息。

Invalid location of text ("}") in tag.

正确的语法是什么?

【问题讨论】:

  • 我可能是错的,但我想我找到了自己的答案。单引号而不是双引号。

标签: jsf expression el


【解决方案1】:

编辑:去掉双引号,也是这样的String。您也可以使用== 来比较字符串。我更喜欢eq 以获得更多可读性。

<p:tab rendered="#{bar eq bean.getAnswer('foo')}" />

<p:tab rendered="#{bar == bean.getAnswer('foo')}" />

您可以在此处找到所有运营商。 http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html

谢谢@贾斯珀·德弗里斯

【讨论】:

  • 可以使用==。您引用的文档中也提到了它。问题与引号有关
  • 不过,您的回答并没有解释什么是错误的,以及您为防止这种情况做了什么。为什么要删除“bar”周围的引号以及.answer 发生了什么?
  • 所有这些在 Stackoverflow 中都有一些重复
【解决方案2】:

我在这里看到的问题是值 bar 使用“”,因为它与外部“”冲突。

用单引号括起来,像 'bar'

希望这会有所帮助。

更新:

将 'eq' 与 String 一起使用使其更具可读性。但是,== 也可以。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2012-01-11
相关资源
最近更新 更多