对请求参数进行后端验证:
创建参数验证类:
1.必填验证:
@Validate(name = "require", description = "验证请求参数不可为null")
public class RequireValidate implements ValidateHandler{
/**
* 必填验证
*/
@Override
public void handleValidate(ApiInvocation invoke, String paramName, Object value) throws Exception {
Assert.notNull(value);
}
/**
* 渲染验证失败的返回视图
*/
@Override
public void handleError(ApiInvocation invoke, Exception validateError) {
invoke.renderException(new Json("{error:'"+validateError.getMessage()+"'}"));
}
}
2.邮箱验证:
@Validate(name = "email", description = "邮箱格式验证")
public class EmailValidate implements ValidateHandler {
/**
* 邮箱格式验证
*/
@Override
public void handleValidate(ApiInvocation invoke, String paramName, Object value) throws Exception {
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher((String)value);
Assert.isTrue(matcher.matches(),"请填写正确邮箱");
}
/**
* 渲染验证失败的返回视图
*/
@Override
public void handleError(ApiInvocation invoke, Exception validateError) {
invoke.renderException(new Json("{error:'"+validateError.getMessage()+"'}"));
}
}
控制器中调用参数验证:
@Get(path = "email")
public void validate(@HttpParam(validate={"require","email"}) String email){
}
本文详细介绍了后端开发中如何通过创建参数验证类来实现对请求参数的验证,包括邮箱格式验证和必填字段验证。通过实例代码展示了如何使用自定义注解来处理验证逻辑,并在验证失败时渲染错误信息。
193

被折叠的 条评论
为什么被折叠?



