0

我正在学习 JSF 并开始在 JSF 1.2 中编写自定义组件。有人可以解释一下 JSF 的“必需”属性是如何工作的吗?我查看了生成的 html,它没有显示任何需要的内容。

我正在编写一个带有多个输入文本的 JSF 组件,但只有其中一些是必需的(例如,编写 2 个输入文本 Zipcode 组件,其中最后一个输入文本始终是可选的,而第一个输入文本将由 xhtml 中定义的必需属性控制.

我该如何处理这种选择性的“必需”行为?

4

1 回答 1

1

组件的 required 属性仅存储在服务器端,客户端不知道默认情况下需要哪些字段。当您发布带有空必填字段的表单时,JSF 会将这些字段与其服务器端模型进行比较,并从那里进行验证,为空的必填字段呈现错误消息。您可以在 JSF 生命周期(仅在服务器端处理)中见证这一点。如果必填字段为空,生命周期将在第 3 步停止,并跳过模型更新。

  1. 恢复视图
  2. 应用请求值;处理事件
  3. 过程验证;处理事件
  4. 更新模型值;处理事件
  5. 调用应用程序;处理事件
  6. 渲染响应

关于第二个问题,如果输入文本的数量是静态的,您可以简单地将其中一些设置为required="true",而将一些设置为required="#{cc.attrs.required}"

于 2012-05-31T07:52:10.557 回答