【问题标题】:Eclipse errors on #{component.valid}: "valid cannot be resolved as a member of component”#{component.valid} 上的 Eclipse 错误:“valid 无法解析为组件的成员”
【发布时间】:2015-11-03 15:17:55
【问题描述】:
我在 JSF 页面中有以下代码:
<p:inputText ...
styleClass="labelledInput-input #{component.valid?'':'validation-failed'}"/>
Eclipse 在component.valid 部分产生错误,如下所示:
valid 无法解析为组件的成员
我该如何解决这个问题?
【问题讨论】:
标签:
eclipse
validation
jsf
el
【解决方案1】:
这是 Mars 之前的 Eclipse 版本中的一个已知问题。 Eclipse 不够聪明,无法确定#{component} 在这种特殊情况下实际上引用了UIInput 子类,并且一直错误地认为它是UIComponent 超类,它确实没有isValid() 属性。你基本上可以忽略'n'运行它。这是一个错误的错误,一切都应该正常工作。
如果您想摆脱错误错误并且无法升级到 Mars,请转到 Window > Preferences > Web > JavaServer Faces Tools > Validation,展开 Type Coercion Problems 并将一元运算布尔强制问题设置为忽略。
截图从this blog借来,非常礼貌。
当你这样做的时候,对一元运算数字强制问题也做同样的事情。这应该可以防止在抽象超类中未定义的基于数字的属性上进行相同类型的 EL 操作时出现相同的错误。