Solon详解系列文章:
Solon详解(一)- 快速入门
Solon详解(二)- Solon的核心
Solon详解(三)- Solon的web开发
Solon详解(四)- Solon的事务传播机制
Solon详解(五)- Solon扩展机制之Solon Plugin
Solon详解(六)- Solon的校验框架使用、定制与扩展
Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330
Solon详解(八)- Solon的缓存框架使用和定制
Solon详解(九)- 渲染控制之定制统一的接口输出
Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?
在业务的实现过程中,尤其是对外接口开发,我们需要对请求进行大量的验证并返回错误状态码和描述。lombok 框架有很多很赞的注解,但是人家是throw一个异常,这与有些需求不一定能匹配。
该文将介绍Solon的扩展验证框架:solon.extend.validation 的使用和扩展( org.noear:solon-web 已包含)。效果如下:
@Valid
@Controller
public class UserController {
@NoRepeatSubmit //重复提交验证
@Whitelist //白名单验证
@NotNull({
"name", "mobile", "icon", "code"}) //非NULL验证
@Numeric({
"code"})
@Mapping("/user/add")
public void addUser(String name, @Pattern("^http") String icon, int code, @Pattern("^13\\d{9}$") String mobile){
//...
}
}
相较于 Spring 的 Validator 是争对 Bean,Solon 则是争对 Context(即http参数)。这点区别非常大,Solon 的设计是在 Action 执行之前对 http 参数进行校验。
| 注解 | 作用范围 | 说明 |
|---|---|---|
| Date | 参数 | 校验注解的参数值为日期格式 |
| DecimalMax(value) | 参数 | 校验注解的参数值小于等于@ DecimalMax指定的value值 |
| DecimalMin(value) | 参数 | 校验注解的参数值大于等于@ DecimalMin指定的value值 |
| 参数 | 校验注解的参数值为电子邮箱格式 | |
| Length(min, max) | 参数 | 校验注解的参数值长度在min和max区间内 |
| Max(value) | 参数 | 校验注解的参数值小于等于@Max指定的value值 |
| Min(value) | 参数 | 校验注解的参数值大于等于@Min指定的value值 |
| NoRepeatSubmit | 控制器 或 动作 | 校验本次请求没有重复 |
| NotBlank | 动作 或 参数 | 校验注解的参数值不是空白 |
| NotEmpty | 动作 或 参数 | 校验注解的参数值不是空 |
| NotNull | 动作 或 参数 | 校验注解的参数值不是null |
| NotZero | 动作 或 参数 | 校验注解的参数值不是0 |
| Null | 动作 或 参数 | 校验注解的参数值是null |
| Numeric | 动作 或 参数 | 校验注解的参数值为数字格式 |

本文详细介绍Solon框架中校验机制的使用与扩展,包括注解如@NoRepeatSubmit、@Whitelist、@NotNull等的运用,以及如何自定义验证逻辑和输出格式。
最低0.47元/天 解锁文章
2611

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



