我有一个
Java Server Faces Web应用程序,我不确定如何处理验证.
在我看来,验证应该在业务逻辑层完成.业务逻辑层用于Web表示(jsf)和REST-API.
目前我正在使用提供的验证器在jsf层内进行验证.我认为在大多数情况下只会重复代码.有没有办法避免这种代码重复? java服务器面孔是否能够使用我在业务逻辑层中抛出的验证异常?
解决方法
Bean验证就是针对这种情况而发明的.
您使用约束来注释您的实体,这些约束将受到您的业务逻辑(通过EJB,CDI和/或JPA)以及JSF的尊重.
对于少量的验证,您无法通过Bean验证表达,但真正与业务相关;是的,抛出异常,在你的支持bean中捕获它并设置相应的Faces消息(提示:使用OmniFaces’ Messages使这更容易).同样,对于少量的验证,您无法使用Bean验证表达,并且强烈的面向观点;使用JSF本机验证器.