使用extval对表进行模型验证



我的页面包含表中值的就地编辑器。类似这样的东西:

<h:dataTable var="actor" value="#{bean.actors}">
  <h:column>
   <h:input value="#{actor.name}"/>
  <h:column>
</h:dataTable>

我希望列表中的所有参与者。当用户点击保存按钮时,参与者都会被验证。所以我把下面的注释放在我的bean 中

@BeanValidation(useGroups = Default.class, modelValidation = @ModelValidation(isActive = true))
private List<Actor> actors;

在我的演员对象中,我有

@NotNull
private String name;
@AssertTrue
public boolean isValid()

因此,NotNull注释对所有参与者都进行了验证,但AssetTrue不会进行验证。

经过长时间的调试后,一切看起来都清晰明了;-)

对于每个绑定(例如#{bean.property1.property2.actors}),extval分析1) 基本属性(属性2)2) 豆类

除其他内容外,它还搜索BeanValidation注释,如果找到它们,则执行模型验证。因此,为了指定属性参与者应该是有效的,我们需要验证它的直接父级

@BeanValidation(useGroups = Default.class, modelValidation = @ModelValidation(isActive = true,validationTargets={"#{accountController}"}))
public class ActorController{
   @Valid
   public List<Actor> getActors

}

另一件奇怪的事情是,如果我把@Valid放在场上,为什么它不起作用。但我没有时间检查这个

相关内容

  • 没有找到相关文章

最新更新