java验证可以与控制器中增强的参数一起使用吗?
我有一个网站模型,它有一个@Required User owner
属性。此属性在控制器方法中填充。但是,在进入控制器方法时会检查验证,因此它会认为对象无效(因为当时它是无效的)
应该玩!验证是否可用于此目的
我是否应该删除@Valid注释并使用validation.required(website)
手动检查
更新-使用validation.required(website)
只会验证网站是否为空,但不会运行验证网站上的任何注释。如果我没有使用@Valid参数注释,这是否意味着我不能对模型本身使用基于注释的验证?程序员该怎么做
Update2-似乎我应该调用validation.valid(website)
,而不是validation.required(website)
。我还向add()
方法参数添加了一个@Required
注释(而不是@Valid)。应该这样做吗
@Entity
public class Website extends PortalModel {
@Required
public String url;
@Required
@ManyToOne
public User owner;
}
public class Sites extends UserAwareControllerBase {
public static void added(@Valid Website website) {
website.owner = getUser(); // from base class
if (Validation.hasErrors()) {
Validation.keep();
params.flash();
add();
}
websiteRepo.save(website);
edit(website.id);
}
}
共 (0) 个答案