1

vaadin-combo-box在我的 Fusion v21 应用程序中有一个尝试填充包含名称和值的对象。所以,我想name在组合框的下拉列表中显示该属性,当我选择一个值时,它应该将它放在value我的实体中,该实体由Binder.

private binder = new Binder<SamplePerson, SamplePersonModel>(this, SamplePersonModel);
...
<vaadin-combo-box
    .items="${[{name:'Name1', value:'Value1'},{name:'Name2', value:'Value2'}]}"
    @value-changed="${(e: CustomEvent) => console.log(e.detail.value)}"
    item-label-path="name"
    item-value-path="value"
    ...="${field(this.binder.model.lastName)}">
</vaadin-combo-box>

我的实体:

@Data
public class SamplePerson {

    @Id
    @GeneratedValue
    @Nonnull
    private Integer id;

    @NotNull
    private String lastName;
}

当我更改值时,我可以在控制台日志中看到它正在显示正确的值。但是当我在方法中检查我的实体时submitTo,我得到以下信息:

// expected: lastName: 'Value1'
// but got:
lastName: {name: 'Name1', value: 'Value1'}

我在这里做错了吗?

(我使用 Person 表单模板从 Vaadin 重构了一个启动应用程序。)

4

0 回答 0