有没有人意识到编辑器和 jsr 303 验证如何与 GWT 2.3 一起工作
未来?验证 API 已添加到 gwt sdk。但我无法使用编辑器框架验证实体。无论
我确实从来没有从客户端或服务器端抛出错误。
这是一个代码片段:
public class P {
public P() {}
@Size(min=4)
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
PEditor
public class PEditor extends Composite implements Editor<P> {
private static PEditorUiBinder uiBinder = GWT.create(PEditorUiBinder.class);
interface PEditorUiBinder extends UiBinder<Widget, PEditor> {}
@UiField
TextBox name;
public PEditor() {
initWidget(uiBinder.createAndBindUi(this));
}
}
PEditor pEditor;
interface Driver extends SimpleBeanEditorDriver<P, PEditor> {}
Driver driver = GWT.<Driver> create(Driver.class);
public void onModuleLoad() {
pEditor = new PEditor();
driver.initialize(pEditor);
P p = new P();
driver.edit(p);
pEditor.name.setText("G");
driver.flush();
if(driver.hasErrors()) {
List<EditorError> errors = driver.getErrors();
for (EditorError error : errors) {
System.out.println(error.getMessage());
}
}
}
感谢您的帮助
验证 API,至少从 2.3 开始,不会为您构建客户端代码 - 它是一个可以集成在服务器上的工具,使您的服务器在某些情况下返回错误。
致电给EditorDriver.hasErrors()
只是检查是否有任何代码告诉本地代表是否有错误 - 可以通过此实现客户端验证。
现在最自动的情况是使用 RequestFactory 时 - 如果您的服务器类路径上有 javax.validation jar(api 和源)以及验证库(hibernate-validator 和 apache 的 bval 是两个这样的库),则接收器回调会有onViolation
called.
使用 RequestFactory 从服务器获取违规行为时,RequestFactoryEditorDriver
然后可以用于将错误推送到 UI,尽管使用HasEditorErrors
编辑器实例和包装器,例如ValueBoxEditorDecorator
,或者只是通过某种机制(警报、横幅、调试 system.out.println 等)通知用户onViolation
叫做。
如果使用 RPC,您可以自己运行服务器验证,并且(从 2.3 开始)调用driver.setConstraintViolations
与ConstraintViolation
验证过程在服务器上生成的对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)