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