1.定义注解
/** * 指定的参数非空验证 * * @author Luyao * */ @Retention(RUNTIME) @Target(METHOD) public @interface NotBlank { String[] value(); }
2.用拦截器实现注解
@Override
public void intercept(Invocation inv) {
	NotBlank annotation = inv.getMethod().getAnnotation(NotBlank.class);
	if (annotation != null && annotation.value().length > 0) {
		Controller c = inv.getController();
		for (String name : annotation.value()) {
			// 判断是否为空
			if (StrKit.isBlank(c.getPara(name))) {
				c.renderJson(Ret.fail("msg", ErrorMsg.PARA_EMPTY));
				return;
			}
		}
	}
	inv.invoke();
}3.使用
@NotBlank({ "oldPwd", "newPwd", "aesKey" })
public void updatePwd(String oldPwd, String newPwd, String aesKey) {
	renderJson(userService.updatePwd(oldPwd, newPwd, aesKey, getHeader("sign")));
}或者只需校验一个参数的时候不需要大括号
@NotBlank("name")
public void updateName(String name) {
	renderJson(userService.updateName(name, getHeader("sign")));
}
例如对 Integer 的验证,当然 string 型的是最有用的,要是能为这个加上长度验证就更好了,感谢分享