validation - Java 服务器端面 : Validation only in business logic tier

标签 validation jsf

我有一个 Java Server Faces Web 应用程序,但我不确定如何处理验证。

我认为验证应该在业务逻辑层中完成。业务逻辑层在 Web 表示 (jsf) 和 REST-API 内部使用。

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

最佳答案

Bean 验证正是针对这种情况而发明的。

您用约束注释您的实体,您的业务逻辑(通过 EJB、CDI 和/或 JPA)以及 JSF 将遵守这些约束。

对于无法通过 Bean Validation 表达但真正与业务相关的少量验证;是的,抛出一个异常,在您的支持 bean 中捕获它并设置相应的 Faces 消息(提示:使用 OmniFaces' Messages 使这更容易)。同样,对于无法使用 Bean Validation 表达且强烈面向 View 的少量验证;使用 JSF native 验证器。

关于validation - Java 服务器端面 : Validation only in business logic tier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558913/

相关文章:

java - Seam outjections 会被删除吗?

JSF/Facelets : why is it not a good idea to mix JSF/Facelets with HTML tags?

ruby-on-rails - 具有自定义验证的 Shoulda Matcher 导致所有 shoulda 验证失败

JSF 2 + Quartz调度库

Ajax 使用 JSF 更新所有组件

php - Laravel 5 验证唯一(数据库)仅适用于相同的外键

java - JSF "Error Mac did not verify!"

php - Laravel 验证 - 以逗号分隔的字符串输入为数组

validation - 为什么Firefox中的DOCTYPE行是红色的?

validation - 表单验证不适用于 Ionic 2 中的 Angular 2 FormBuilder