我对 gwt 的编辑器框架有疑问。在执行 editorDriver.setConstraintViolations(errors) 时,错误不会发布到使用嵌套实体的字段
首先我有一个用户实体:
public class User extends BaseEntity {
@OneToOne
@JoinColumn(nullable = false)
private Contact contact;
@NotNull(message = "username must not be null")
@Column(nullable = false)
private String username;
....
现在在我的编辑器中,我有类似的字段
@UiField
ValidationWidgetDecorator<String> username;
@Path("contact.title")
@UiField
ValidationWidgetDecorator<String> title;
ValidatoinWidgetDecorator 类与 ValueBoxEditorDecorator 几乎相同
现在如果我在做
RequestContext context = editorDriver.flush();
context.fire(new Receiver<Void>() {
@Override
public void onConstraintViolation(Set<ConstraintViolation<?>> errors) {
editorDriver.setConstraintViolations(errors);
}
...
显示 Userproxy 的约束错误(例如用户名违规)并且一切正常,但如果违规发生在联系人中(例如在 contact.title 字段中),则错误不会在视图中发布(错误容器在showErrors(列表错误)为空)
现在我真的找不到其他人有这个问题,所以我想问题出在我这边,可能是因为我的编辑器实现了 Editor < UserProxy > 并且联系人是 ContactProxy?
其他一切似乎都正常
希望它有足够的代码,否则我会发布更多。
谢谢