Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation JSF2.0有Bean验证(JSR303)和它自己的验证框架_Validation_Jsf 2_Bean Validation - Fatal编程技术网

Validation JSF2.0有Bean验证(JSR303)和它自己的验证框架

Validation JSF2.0有Bean验证(JSR303)和它自己的验证框架,validation,jsf-2,bean-validation,Validation,Jsf 2,Bean Validation,JSF2.0提供了Bean验证(JSR303)和它自己的验证框架,考虑到这些选择,我不知道该选择哪一个 似乎有了JSF的验证框架,我可以在XHTML视图层指定约束。i、 e.最大长度。在使用Bean验证时,我将通过Bean中的注释(@)指定约束 我认为JSF验证框架更像是一种插件式的尝试,而bean验证JSR则是一种优雅的解决方案,有人对此发表评论吗 我可以检查一下是否有人使用了一个而不是另一个,为什么,或者是否有人同时使用了这两个吗?首先,Bean验证不是JSF的一部分。它是JavaEE的一部

JSF2.0提供了
Bean验证
(JSR303)和它自己的
验证框架
,考虑到这些选择,我不知道该选择哪一个

似乎有了JSF的验证框架,我可以在XHTML视图层指定约束。i、 e.最大长度。在使用Bean验证时,我将通过Bean中的注释(@)指定约束

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


我可以检查一下是否有人使用了一个而不是另一个,为什么,或者是否有人同时使用了这两个吗?

首先,Bean验证不是JSF的一部分。它是JavaEE的一部分,JSF也是JavaEE的一部分。Bean验证也可用于非JSF应用程序。Bean验证只是为了为验证框架提供JavaEE标准而设计的

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

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


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

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