【问题标题】:HTML form validation based on bean validation in a JAX-RS 2.0 application基于 JAX-RS 2.0 应用程序中的 bean 验证的 HTML 表单验证
【发布时间】:2013-04-22 05:52:53
【问题描述】:

我们知道 JAX-RS 可以轻松地将表单输入值直接映射到服务器 bean 属性或方法参数。

现在 JAX-RS 2.0 提供了一种使用 bean 验证来验证服务器端值的方法,这真是太棒了。

但是我们如何以 Ajax 方式在前端(向提交 HTTP 表单的用户)呈现有用的验证信息?

【问题讨论】:

    标签: jakarta-ee jax-rs bean-validation


    【解决方案1】:

    可能的方法如下。创建 ErrorEntity 类,类似于

    @XmlRootEntity
    public class ErrorEntity{
      private String errorCode;
      private String description;
    
      //getters, setter, constructors
    
    }
    

    那么,如果发生错误抛出:

    int statusCode = 500;
    ErrorEntity ee = new ErrorEntity("SYSTEM", "Cannot connect to database, etc.");
    throw new WebApplicationException(Response.status(statusCode).entity(ee).build());
    

    显然使用正确的 HTTP 错误代码(400 表示格式错误的内容,404 表示丢失的数据等)。

    在 AJAX 应用程序中,如果您得到与 200、204 或 302 不同的内容,那么您应该获得带有 ErrorEntity 内容的 JSON 或 XML。

    最简单的解决方案是简单地将String作为带有一些错误信息+ HTTP状态码的实体返回。

    throw new WebApplicationException(Response.status(500).entity("Cannot connect to DB, ...").build());
    

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2016-06-08
      • 1970-01-01
      • 2015-10-07
      相关资源
      最近更新 更多