我使用的是JSF 2和Primefaces。但我现在需要做一些更复杂的验证,特别是跨字段验证,也许还需要一些涉及表达式语言的验证(所以我可以在我的xhtml页面中进行条件验证)。
我不认为我可以使用我当前的设置执行这些操作,但我一直在阅读我可以使用的各种其他插件,例如:
只是想知道最推荐的方法是什么。 ExtVal是否需要MyFaces作为先决条件?如果是这样,MyFaces会与PrimeFaces冲突吗?
我用不同的罐子做了一些实验,遇到了几个冲突,所以感谢任何反馈。
[更新] 根据我的评论,我选择了OmniFaces,这只是下载jar文件然后将名称空间添加到我的页面的情况:
...
xmlns:o="http://omnifaces.org/ui"
xmlns:of="http://omnifaces.org/functions"
...
然后我用它作为测试用例(确保密码和confirmPassword都是相同的,但只有当其中一个有值时)。这解决了我的问题'非常容易。
<o:validateEqual id="equal" components="password confirmPassword" disabled="#{editUserAdminController.user.password != '' || editUserAdminController.user.confirmPassword}"/>
由于
答案 0 :(得分:2)
编辑:如果应用程序/服务器提供了一个{1},则JSF可以使用JSR303
的实现。跨领域验证有点棘手,但绝对可以通过技术可用来完成。
您可能还想查看OmniFaces library - 它在许多其他有用的东西中具有跨字段验证功能,并且与特定的JSF框架无关。