Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Java JSF2验证选项_Java_Jsf 2 - Fatal编程技术网

Java JSF2验证选项

Java JSF2验证选项,java,jsf-2,Java,Jsf 2,我正在使用JSF2和Primefaces。但我现在需要做一些更复杂的验证,特别是跨域验证,也许还有一些涉及表达式语言的验证(这样我就可以在我的xhtml页面中进行条件验证) 我认为我目前的设置无法实现这些功能,但我一直在阅读有关我可以使用的各种其他插件的信息,例如: 接缝 ExtVal JSR303 我只是想知道最推荐的方法是什么。ExtVal是否需要MyFaces作为先决条件?如果是这样,MyFaces会与PrimeFaces冲突吗 我用不同的罐子做了一些实验,遇到了一些冲突,所以非常感谢

我正在使用JSF2和Primefaces。但我现在需要做一些更复杂的验证,特别是跨域验证,也许还有一些涉及表达式语言的验证(这样我就可以在我的xhtml页面中进行条件验证)

我认为我目前的设置无法实现这些功能,但我一直在阅读有关我可以使用的各种其他插件的信息,例如:

  • 接缝
  • ExtVal
  • JSR303
我只是想知道最推荐的方法是什么。ExtVal是否需要MyFaces作为先决条件?如果是这样,MyFaces会与PrimeFaces冲突吗

我用不同的罐子做了一些实验,遇到了一些冲突,所以非常感谢您的反馈

[更新] 根据我的评论,我选择了OmniFaces,它只是下载jar文件,然后将名称空间添加到我的页面:

...
      xmlns:o="http://omnifaces.org/ui"
      xmlns:of="http://omnifaces.org/functions"
...
然后我将其用作测试用例(以确保password和confirmPassword都相同,但仅当其中一个具有值时)。这很容易解决我的两个“问题”

<o:validateEqual id="equal" components="password confirmPassword" disabled="#{editUserAdminController.user.password != '' || editUserAdminController.user.confirmPassword}"/>


谢谢编辑:如果应用程序/服务器提供了JSF,JSF可以使用JSR303的实现。跨场验证有点棘手,但肯定可以用可用的技术完成


您可能还想看看-it的特性,它在许多其他有用的东西中具有跨域验证,并且不与特定的JSF框架相关联。

您的第一句话并不完全正确。JSF本身根本不使用JSR303进行默认验证,例如
required=“true”
,但JSF只能够识别它在webapp中的存在并将验证委托给它。所使用的特定JSR303实现不是特定于JSF的,而是特定于webapp或servletcontainer的。也就是说,JSR303完全独立于JSF。太好了,谢谢大家。我走了OmniFaces路线,效果很好。跑步也很容易。无论是谁写的都做得很好;-)