当前位置: 首页 > 知识库问答 >
问题:

如何在vaadin流中绑定枚举值?

司徒俊雄
2023-03-14

在使用springboot的vaadin flow项目中,我遇到了一个问题,即带有组合框的枚举值无法绑定。我在下面提供了我的代码。这里有人能帮我吗?

组合盒实例化:

private ComboBox<Country> nationality = new CompoBox<>("Nationality");

绑定代码:

binder.forField(nationality)
    .bind(Coach::getNationality,Coach:setNationality);

共有1个答案

田彬郁
2023-03-14

我想你错过了setItems呼叫。下面是一个基于Vaadin Flow项目库的示例

package com.vaadin.starter.skeleton;

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.notification.Notification;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.data.binder.Binder;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.server.PWA;

/**
 * The main view contains a button and a click listener.
 */
@Route("")
@PWA(name = "Project Base for Vaadin Flow", shortName = "Project Base")
public class MainView extends VerticalLayout {

    public MainView() {

        ComboBox<ENUM> comboBox = new ComboBox<ENUM>("Number");
        comboBox.setItems(ENUM.values());
        Binder<Bean> binder = new Binder<>();
        binder.setBean(new Bean());
        binder.bind(comboBox,Bean::getField,Bean::setField);
        Button button = new Button("Check value",
                        e-> Notification.show("Value in bean is " + binder.getBean().getField()));
        add(button,comboBox);
    }

    public enum ENUM {
        ONE,TWO,TREE
    }

    public static class Bean {
        private ENUM field;

        public ENUM getField() {

            return field;
        }

        public void setField(ENUM field) {

            this.field = field;
        }
    }
}

 类似资料:
  • 问题内容: 我想知道在Java中是否可以嵌套枚举。 在这里,我想做的是: 拥有一个由CAT和DOG组成的物种,将允许我访问可用CAT和DOG品种的子枚举。例如,我希望能够测试是否装有CAT或DOG,以及动物是否是PERSAN CAT或PITBULL狗。CAT和DOG品种必须是不同的枚举,即CatBreeds枚举和DogBreeds枚举。 这是我要使用的访问模式的示例: 种类: 物种 种狗 品种:

  • 问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它:

  • 问题内容: 我无法使用从常量中获取的枚举作为注释中的参数。我收到此编译错误:“注释属性[attribute]的值必须是枚举常量表达式”。 这是枚举代码的简化版本: 对于注释: 和班级: 该错误仅在方法B的“ theEnum = MYENUM_CONSTANT”中显示。字符串和int常量对于编译器是可以的,但Enum常量不是,即使它的值与methodA上的值完全相同。在我看来,这是编译器中缺少的功能

  • 我有一个列表,我想知道它是否包含除枚举类中的元素以外的任何其他元素。 我有这个工作: 这是可行的,但是我如何用流替换for循环,并且使它在更少的行中呢?

  • 问题内容: 我有一个第三方图书馆给我一个图书馆。我想像Java 8那样懒惰地使用该枚举,并调用诸如此类的东西。 有没有现成的图书馆?我已经在引用Guava和Apache Commons,所以如果其中任何一个都有理想的解决方案。 另外,在保留所有内容的懒惰性质的同时将a 变成最佳/最简单的方法是什么? 问题答案: 这个答案已经提供了一个解决方案,可以解决以下问题: 应当强调的是,由此而来 的 懒任何