自定义组件必需属性

时间:2012-04-18 14:47:13

标签: jsf custom-component required

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 还原视图
  2. 应用请求值;过程事件
  3. 流程验证;过程事件
  4. 更新模型值;过程事件
  5. 调用应用程序;过程事件
  6. 渲染回复
  7. 关于第二个问题,如果输入文本的数量是静态的,您只需将其中一些设置为required="true",将其中一些设置为required="#{cc.attrs.required}"