67,513
社区成员
发帖
与我相关
我的任务
分享
@ValidateBean
class JavaBean{
//非空验证
@NotNullValidate
private String property1;
//value的范围验证
@RangeValueValidate(min="1", max="120")
private Integer property2;
//集合的长度验证
@MinLengthValidate(length=1)
//list中的AnotherJavaBean对象会递归验证
private List<AnotherJavaBean> list;
}
@ValidateBean
class AnotherJavaBean{
@NotNullValidate
private String subProperty1;
@RangeValueValidate(min="1", max="120")
private Integer subProperty2;
}
SmartValidate.validate(new JavaBean());
public void method(
@ValidateArgument(
notNull=@NotNullValidate,
maxLength=@MaxLengthValidate(length=1)
)
/** 验证单个参数 **/
String argument,
/** 验证JavaBean **/
JavaBean javaBean) {
}
<aop:config>
<!-- pointcut 配置成需要拦截的路径 -->
<aop:advisor pointcut="execution(*.*(..))" advice-ref="smartValidateInterceptor"/>
</aop:config>
<bean id="smartValidateInterceptor" class="com.smart.validate.interceptor.SmartValidateInterceptor" />
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomerValidate {
String message () default "";
String name () default "";
}
public class MatchCustomerValidate extends AbstractMatchValidate<CustomerValidate >{
@Override
public void validate(CustomerValidate t,
String fieldName,
Object value)
throws SmartValidateException {
//your code
}
ValidateRulePool.mount(CustomerValidate.class, new MatchCustomerValidate());