如何使用Vaadins @Route注释从类中调用Getter

时间:2019-07-17 14:56:08

标签: spring-boot vaadin

我想从使用Vaadins @Route批注的类中访问吸气剂。

实例化该类不起作用,也不自动装配 这是我的切入点。从这里开始,我想从下一个类中的按钮调用getter来添加actionlistener(clicklistener),以在较小的摆动窗口中进一步利用其数据

@SpringBootApplication
public class App 
{

    @Autowired
    Main main;

    public static void main( String[] args )
    {
        SpringApplicationBuilder builder = new SpringApplicationBuilder(App.class);
        builder.headless(false);
        ConfigurableApplicationContext configurableApplicationContext = builder.run(args);
        View view = new View();
    }
}

这是实现Vaadin的类。这是我要打电话的吸气剂

@Route("index")
public class Main extends VerticalLayout {
    VerticalLayout buttons = new VerticalLayout();
    TextField field = new TextField();
    Button button = new Button("commit change");

    public Main() {
        button.addClickListener(buttonClickEvent -> {
            if (StringUtils.isNotEmpty(field.getValue())) {
                Checkbox checkbox = new Checkbox(field.getValue());
                buttons.add(checkbox);
                field.setValue("");
            }
        });


        add(
                new H1("Control it!"),
                buttons,
                field,
                button

        );

    }

    public TextField getField() {
        return field;
    }

2 个答案:

答案 0 :(得分:1)

我想出了一种避免调用吸气剂的方法

我制作了Gui应用程序,该应用程序也应该从Vaadin中获取一个@Component并将其@Autowired插入Main。这可能是错误的方法,但是可以。

答案 1 :(得分:0)

即使您可以在Main类中进行自动装配,但如果要将其用作bean,则还需要添加Spring @Component(或Vaadin的@SpringComponent)注释。如@UIScope一样,以返回正确的bean实例。