0
我们知道JAX-RS可以轻松地将表单输入值直接映射到服务器bean属性或方法参数。基于JAX-RS 2.0应用程序中的bean验证的HTML表单验证
现在JAX-RS 2.0提供了一种使用bean验证验证服务器端值的方法,这真是太神奇了。
但是,我们如何以Ajax的方式在前端(提交HTTP表单的用户)提供有用的验证信息?
我们知道JAX-RS可以轻松地将表单输入值直接映射到服务器bean属性或方法参数。基于JAX-RS 2.0应用程序中的bean验证的HTML表单验证
现在JAX-RS 2.0提供了一种使用bean验证验证服务器端值的方法,这真是太神奇了。
但是,我们如何以Ajax的方式在前端(提交HTTP表单的用户)提供有用的验证信息?
可能的方法如下。创建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。
最简单的解决方案是简单地返回字符串作为实体与一些错误信息+ HTTP状态码。
throw new WebApplicationException(Response.status(500).entity("Cannot connect to DB, ...").build());