我遇到了一个奇怪的情况。我有一个最初在 RAD 中开发的应用程序,并使用类似的结构
rendered="#{bean.show and user.can('foo')}"
我们的开发人员混合使用 RAD 和 Eclipse Juno/Kepler。因此我们需要使代码在这两种环境中都能工作。
在 RAD 中,上面的行不会生成任何错误。当我将项目导出为存档并将其导入 Eclipse Juno 时,它会生成此错误
Cannot apply expression operators to method bindings
我们的环境是Websphere 8.5、RAD/Eclipse、JSF 2.1
我该如何解决这个问题?
最佳答案
一般来说,如果您在 Eclipse 中的 JSF 文件中遇到错误的 EL 验证错误,请尝试在“Window > Preferences > Web > JavaServer Faces Tools > Validation”中查看并调整当前的一些设置(不必要) )设置为错误。
您的特定问题是由“将运算符应用于方法绑定(bind)”触发的,它确实默认为错误。如果无法将 Eclipse 升级到最新版本,则将其设置回警告应该会降低它的强度。
毕竟,Eclipse 中的 EL 验证是一次巨大的失败。看起来它使用正则表达式来验证 EL 语法,而不是像 EL 本身那样使用真正的基于堆栈的解析器。 “类型强制问题”和“类型分配问题”下面有几个条目,这些条目不必要地设置为错误,并且已知会导致错误错误。
另请参阅:
关于Eclipse 对 JSF 文件中的 EL 表达式给出了太多错误和警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28605864/