是否有必要在 JSF 自定义组件的 decode() 中调用 setValid(true)?

Is it necessary to invoke setValid(true) in decode() in a JSF Custom Component?

在使用自定义组件时我遇到了问题,UIInput#getValid() 永远不会自行重置。问题是:我是否必须在应用请求值阶段调用 setValid(true) 自己?

以下是我完成的步骤:

UIInput#decode() 的默认实现确实调用 EditableValueHolder#setValid()true

所以你有两个选择:

  • 只需在 UIInput#decode() 中调用 super.decode(context) 而不是手动获取提交的值并用它调用 setSubmittedValue()(因为这已经是 UIInput#decode() 的默认行为)。
  • 或者,在 UIInput#decode() 中手动调用 setValid(true),然后再调用 setSubimttedValue()