2013-12-13 81 views
7

我有一个Java Server Faces Web应用程序,我不确定如何处理验证。Java服务器Faces:仅在业务逻辑层验证

我认为验证应该在商业逻辑层进行。业务逻辑层用于Web演示文稿(jsf)和REST-API内部。

此刻我也在使用提供的验证器在jsf图层中进行验证。我认为大多数情况下只是重复代码。有什么办法可以避免这种代码重复? java服务器端是否能够使用我在业务逻辑层中引发的验证异常?

回答

5

Bean Validation已经发明了这种情况。

您使用约束对实体进行注释,这些约束将由您的业务逻辑(通过EJB,CDI和/或JPA)以及JSF来承认。

对于通过Bean验证无法表达的少量验证,但确实与业务关联;是的,抛出一个异常,将其捕获到你的后台bean中,并设置相应的Faces消息(提示:使用OmniFaces' Messages使这更容易)。同样,对于Bean Validation无法表达的少量验证,以及强烈的面向视图的验证;使用JSF本地验证器。