java - 使用 fieldgroup 属性 vaadin 进行验证

标签 java web frameworks vaadin

我有这个文本字段

   firstNameField = new TextField("First Name");
    firstNameField.setRequired(true);
    firstNameField.setImmediate(true);
    firstNameField.setValidationVisible(true);
    firstNameField.setWidth(COMMON_FIELD_WIDTH);
    firstNameField.addValidator(new StringLengthValidator(
            "Allowed Length of Characters(2-30) ", 2, 30, true));

    firstNameField.setNullRepresentation(null);

该字段绑定(bind)到 bean 属性firstName

  binderFieldGroupPersonalDetails.bind(firstNameField, "firstName");

现在当我使用

  binderFieldGroupPersonalDetails.commit;

提交时没有图标验证错误
但将鼠标悬停在字段上时会显示所需的错误

如何提示用户有关空字段的信息???
我试过这个

   Button.ClickListener btnSaveContinuePersonalDetailsClickListener = new Button.ClickListener() {

    public void buttonClick(ClickEvent event) {
        try {
            // changes
                // the
                // tab
                // layout
                // to
                // next
                // tab
                // on
                // Successful
                // commit
            binderFieldGroupPersonalDetails.commit();
            TabSheetLayout
                    .setSelectedTab(contentAccountDetailsRegistrationForm);

        } catch (CommitException e) {


            //lets add up all the error msg for missing fields
            Collection<Field<?>> fields = binderFieldGroupPersonalDetails.getFields();
            Iterator<Field<?>> it = fields.iterator();
            String errorMessage = "";
            while(it.hasNext()){
                if(it.next().getValue()==null||it.next().getValue()==""){
                    errorMessage=errorMessage.concat("  "+it.next().getCaption()+" is required <br>");

                }
            }
            getUI().showNotification("<h6>"+errorMessage+"<h6>",Notification.TYPE_ERROR_MESSAGE);

                e.printStackTrace();
        }

    }
};  

最佳答案

binderFieldGroupPersonalDetails.setBuffered(true);

// A button to commit the buffer
button.addComponent(new Button("OK", new ClickListener() {
    @Override
    public void buttonClick(ClickEvent event) {
        try {
            binder.commit();
            Notification.show("Thanks!");
        } catch (CommitException e) {
            Notification.show(e.getMessage());
        }
    }
}));

关于java - 使用 fieldgroup 属性 vaadin 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23423476/

相关文章:

java - HttpClient 获取状态码

java - 如何通过双击启动 cli Jar?

java - 如何使用 Spring MVC 4 从另一个 Web 项目引用静态资源

java - 小Java程序中没有主类+嵌入为小程序

php - 什么是处理 PHP 应用程序到 SQL 数据库的良好包装器/框架/库?

.net - IoC 容器如何实现依赖注入(inject)与我将如何实现它相比

java - GWT 更改包结构,无法找到 gwt.xml

java - 使用特定名称服务器解析主机名的 Scala 或 java lib

php - 什么会导致网站不总是加载

php - 使用 php 创建网站构建器