Skip to content

Binder does not support sub properties #8384

@Artur-

Description

@Artur-

If you have two beans:

public class Bean {
private SubBean sub;
// + getter setter
}
public class SubBean {
private String name;
// + getter setter

You would expect to be able to do

Binder<Bean> binder = new Binder<>(Bean.class);
binder.bind(new TextField(), "sub.name");

but this results in

java.lang.IllegalArgumentException: Could not resolve property name sub.name from Property set for bean Bean

and you end up writing something like

        binder.bind(new TextField(), bean -> {
            if (bean.getSub() == null) {
                return "";
            } else {
                return bean.getSub().getName();
            }
        }, (bean, value) -> {
            if (bean.getSub() == null) {
                bean.setSub(new SubBean());
            }
            bean.getSub().setName(value);
        });

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions