【问题标题】:Eclipse gives too many false errors and warnings on EL expressions in JSF filesEclipse 对 JSF 文件中的 EL 表达式给出太多错误错误和警告
【发布时间】:2015-04-20 18:25:14
【问题描述】:

我遇到了一个奇怪的情况。我有一个最初是在 RAD 中开发的应用程序,并使用了类似

的结构
rendered="#{bean.show and user.can('foo')}"

我们的开发人员混合使用 RAD 和 Eclipse Juno / Kepler。所以我们需要让代码在这两种环境下都能正常工作。

在 RAD 中,上述行不会产生任何错误。当我将项目导出为存档并将其导入 Eclipse Juno 时,它会生成此错误

无法将表达式运算符应用于方法绑定

我们的环境是 Websphere 8.5、RAD / Eclipse、JSF 2.1

我该如何解决这个问题?

【问题讨论】:

    标签: eclipse validation jsf el


    【解决方案1】:

    我对以下任何陈述都有同样的错误:
    <h:panelGroup rendered="#{!bean.isValid(obj)}"> <h:panelGroup rendered="#{not bean.isValid(obj)}">

    我通过如下更改语句解决了错误:
    &lt;h:panelGroup rendered="#{bean.isValid(obj) == false}"&gt;

    我找到了另一个解决问题的示例:
    &lt;ui:fragment rendered="#{bean.isValid(obj) eq 'false'}"&gt;

    【讨论】:

      【解决方案2】:

      一般来说,如果您在 Eclipse 中的 JSF 文件中遇到错误的 EL 验证错误,请尝试在 Window > Preferences > Web > JavaServer Faces Tools > Validation 中查看并调整当前的一些设置(不必要) 设置为错误

      您的特定问题是由“将运算符应用于方法绑定”触发的,它确实默认为错误。如果无法将 Eclipse 升级到最新版本,则将其设置回 Warning 应该会降低它的音量。

      毕竟,Eclipse 中的 EL 验证是一场史诗般的失败。似乎它使用正则表达式来验证 EL 语法,而不是像 EL 本身那样使用真正的基于堆栈的解析器。 “类型强制问题”和“类型分配问题”下面有几个条目不必要地设置为 错误 并且已知会导致错误错误。

      另见:

      【讨论】:

      • 感谢 BalisC。我将检查验证设置。但是我仍然对为什么当我 a) 使用 $ 而不是 # 或 b) 更改顺序时错误消失感到困惑。你愿意向我解释这部分吗?
      • 全新安装 Eclipse Mars.1 在我的项目中弹出此错误。所以 Eclipse 似乎又把这里的默认值改成了 ERROR。
      • 我为此打开了bugs.eclipse.org/bugs/show_bug.cgi?id=540785。我仍然使用 Eclipse 2018-09 进行复制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 2021-04-26
      • 2019-04-03
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      相关资源
      最近更新 更多