我有一个如下所示的课程:
public class Department {
@NotNull
public final List<String> employees;
@JsonCreator
public RoleViewWithUserIds(final @JsonProperty("employees") List<String> employees) {
Preconditions.checkNotNull(employees, "employees");
this.employees = employees;
}
}
并希望使用此MVC控制器验证它:
@RequestMapping(value = "", method = RequestMethod.POST)
@ResponseBody
public DepartmentView create(HttpServletRequest request,
@RequestBody @Valid Department submission,
BindingResult result) {
if (result.hasErrors()) {
// 400 Bad Request
这个想法是在两种情况下强制执行有效性:
Department
(使用BindingResult
)Department
对象时(使用构造函数断言)不幸的是,我无法在同一个类中看到强制执行这两个约束的方法。有没有办法做到这一点,还是我必须有两种不同的类型?
编辑:我现在想知道是否有一种方法可以对与提交的对象类型相关的代理对象进行验证,这样就可以像任何其他对象一样创建和验证POJO本身。
答案 0 :(得分:1)
let od = document.getElementById('outerDiv');
let ow = od.scrollWidth;
let id = document.getElementById('innerDiv');
let iw = id.style.width = ow+"px";
模型将由update
验证,结果将存储在where
。如果您在其他地方创建对象并希望按照CREATE FUNCTION add_update_dates()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
BEGIN
IF (OLD.news_name IS DISTINCT FROM NEW.news_name OR
OLD.news_description IS DISTINCT FROM NEW.news_description OR
OLD.news_text IS DISTINCT FROM NEW.news_text
) THEN
NEW.news_update_date := current_date;
NEW.news_update_time := current_time;
END IF;
RETURN new;
END;
$$;
注释验证对象:这不能在对象创建时自动完成,但是,创建它的代码可以通过某些东西手动验证它像这样:
Department
验证结果现在将存储在@Valid
。
因此,使用构造函数断言的唯一方法是将bindingResult
的实例作为构造函数的参数并在那里断言。