GWT编辑器框架 - 未发布的嵌套实体的约束违例

时间:2012-05-15 09:49:29

标签: gwt editor

我对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中的错误容器(列表错误)为空)

现在我真的找不到其他人这个问题,所以我想问题就在我身边,也许是因为我的编辑器实现了编辑器&lt; UserProxy&gt;并且联系人是ContactProxy?

其他一切似乎都正常

希望它有足够的代码,否则我会发布更多代码。

THX

1 个答案:

答案 0 :(得分:0)

我怀疑问题是onConstraintViolation没有为普通context.fire调用,而是仅针对保存项目的请求。在上下文中发出请求时,将onConstrainViolation覆盖移动到接收者(可能需要添加)。