为什么使用Spring 4验证约束变量?

时间:2015-03-18 17:55:27

标签: java spring validation constraints

首先,我有这段代码:

@Service
public class ClientService {
    public void addClient(@Valid Client client) { // Client class has some javax.validation.constraints on his attributes 
        Set<ConstraintViolation<Long>> violations = this.validator.validate(id); 
        ValidationHandler.handleViolations(violations); 
        ...
    }


    public void deleteClient(@Digits(fraction = 0, integer = 5) Long id) throws ValidationException {
        Set<ConstraintViolation<Long>> violations = this.validator.validate(id); 
        ValidationHandler.handleViolations(violations);
        ...
    }
}

public class Client {
    @Digits(fraction=0, integer=5, message="Invalid ID")
    private Long id;
    @Size(min = 2, max = 10, message = "Client's name length should be between {min} and {max}")
    private String name;
    private ClientType type;
    private Gender gender;

    // Getters and setters
}

所以,我的问题是这个。当我调用deleteClient()然后验证器验证对象参数(id)时,我总是得到非违规,尽管我传递的是无效值(例如343435454)。我正在读这个,这是因为我没有为这种方法实现任何Spring AOP验证器拦截器,这是对的吗?如果是,那么我不明白为什么当我用无效数据调用addClient()时验证器正确验证。任何人都可以解释我为什么会这样吗?

0 个答案:

没有答案