我对Bean Validation和JSF验证有一些问题,目前我正在使用Bean验证:
- 使用JSF验证时,验证仅在客户端工作,不会发送请求到服务器,而Bean验证在服务器上工作?
- 如果禁用javascript,JSF和Bean Validation都可以工作吗,还是只有Bean Validation?
- 如果有的话,Bean验证有哪些缺点?
我对Bean Validation和JSF验证有一些问题,目前我正在使用Bean验证:
这不是真的。验证是通过 Process Validations
在 jsf 生命周期中应用的。
"当 JSF 运行时在视图层次结构中的每个组件上调用 processValidators() 方法时,将进行转换和验证。processValidators() 方法将首先启动任何数据转换,然后根据应用程序的验证规则验证组件值。如果在转换或验证过程中出现任何错误,则会标记该组件无效,并生成并排队在 FacesContext 对象中的错误消息。如果组件被标记为无效,则 JSF 直接前往呈现响应阶段,该阶段将显示当前视图和排队的验证错误消息。如果没有验证错误,则 JSF 前往更新模型值阶段。" - johnderinger.wordpress.com
您也可以在规范中找到此信息。
两者都不需要 javascript
。
这更多是编程风格的问题。我认为在模型中进行验证比在视图中进行验证更好,因为它从视图中删除了逻辑,并且更加 DRY(不要重复自己)。如果您多次使用 bean,则只需使用 bean 验证一次即可编写验证。您还应该知道,bean 验证将覆盖 JSF 中的约束。
有关如何使用 bean 验证的更多信息,您可以在这里找到,并在规范中找到。有关集成 JSF 验证的更多信息,您应该访问此网站。