我对Bean验证和JSF验证有一些疑问,目前我正在使用Bean验证:

  • 使用JSF验证,该验证仅在客户端起作用,没有请求发送到服务器,而Bean验证在服务器上起作用?
  • 如果禁用了javascript,那么两者都可以使用JSF和Bean验证,还是仅可以进行Bean验证?
  • 如果有的话,Bean验证有什么缺点?
  • 最佳答案

  • 这是不正确的。验证是通过Process Validations在jsf生命周期中应用的。

    “当JSF运行时调用
    视图层次结构中每个组件上的processValidators()方法。
    processValidators()方法将首先启动任何数据转换
    在验证组件值之前需要
    应用程序的验证规则。如果在操作过程中出现任何错误
    转换或验证过程中,该组件被标记为无效,并且
    生成错误消息并将其排队在FacesContext对象中。
    如果某个组件被标记为无效,则JSF会直接前进到渲染器
    响应阶段,该阶段将显示当前视图和已排队
    验证错误消息。如果没有验证错误,那么JSF
    前进到更新模型值阶段。”-johnderinger.wordpress.com

    您也可以在the specification中找到此信息。
  • 都可以不使用javascript而工作。
  • 这更多是关于编程风格的问题。我认为在模型中进行验证要比在视图中进行验证更好,因为它从视图中删除了逻辑并且更加干燥(不要重复您自己)。如果您多次使用bean,则必须使用bean验证只编写一次验证。您还应该知道,Bean验证会覆盖JSF中的约束。

    有关如何使用bean验证的更多信息,可以找到here和规范here
    有关集成JSF验证的更多信息,您应该访问this site
  • 07-24 09:47
    查看更多