2012-04-18 112 views
0

我正在学习JSF并开始在JSF 1.2中编写自定义组件。有人可以澄清一下JSF'required'属性如何在引擎盖下工作吗?我查看了生成的html,并没有显示任何需要的东西。自定义组件必需属性

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

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

回答

1

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

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

关于你提到的第二个问题,如果输入文本的数量是静态的,你可以简单地设置他们中的一些required="true",有的required="#{cc.attrs.required}"