【问题标题】:JSF 2.0 has Bean Validation (JSR 303) and also its own Validation FrameworkJSF 2.0 有 Bean Validation (JSR 303) 以及它自己的 Validation Framework
【发布时间】:2011-12-28 08:17:16
【问题描述】:

JSF 2.0 提供了Bean Validation (JSR 303) 和它自己的Validation framework,考虑到这些选择,我不知道该从哪一个中选择。

似乎使用 JSF 的验证框架,我可以在 XHTML 视图层指定约束。即最大长度。在使用 Bean Validation 时,我会通过 bean 中的注解 (@) 来指定约束。

我认为 JSF 验证框架更像是一种可插拔的尝试,而 bean 验证 JSR 是一种优雅的解决方案,有人可以对此发表评论吗?

我可以检查是否有人使用过另一个,为什么,或者是否有人一起使用过?

【问题讨论】:

    标签: validation jsf-2 bean-validation


    【解决方案1】:

    首先,Bean Validation 不是 JSF 的一部分。它是 Java EE 的一部分,而 JSF 也是其中的一部分。 Bean Validation 也可用于非 JSF 应用程序。 Bean Validation 旨在为验证框架提供 Java EE 标准。

    这些验证方法之间的主要功能区别在于 JSF 自己的验证在视图级别进行控制,而 Bean 验证在模型级别进行控制。此外,还有一个技术差异:并非所有容器都支持 Bean Validation。例如,像 Tomcat 这样的简单 servlet 容器不支持它。您需要自己为 webapp 提供 Bean Validation API/impl。

    如果您正在使用无法控制的模型,那么您需要决定将它们包装在另一个模型中以便使用 Bean 验证,或者在 JSF 视图中定义验证。选择哪一个取决于功能和技术要求。两者都一样好。

    如果您使用的模型是您可以完全控制的,并且它们也被重用于 JSF 以外的其他视图,并且验证约束完全依赖于数据库数据模型,那么 Bean 验证是比 JSF 自己的验证更好的选择,因为它可以最大限度地减少验证约束的代码重复。

    【讨论】:

      【解决方案2】:

      模型中的 Bean 验证更有意义,如果您想促进项目的可扩展性,例如您想在外部公开一些实体服务,[例如对于 CRUD 操作)。

      【讨论】:

        猜你喜欢
        • 2016-06-19
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多