Vaadin提交针对定制表单的操作

问题描述

在我的vaadin应用程序中,我试图创建一个登录表单。如果我使用vaadin框架提供的登录表单。我可以通过.setAction()方法设置用户输入数据的发布,以提高安全性。

    private LoginForm login = new LoginForm(); 



public Login(){
    addClassName("login-view");
    setSizefull();
    setAlignItems(Alignment.CENTER); 


    setJustifyContentMode(JustifyContentMode.CENTER);

    **login.setAction("login");**  

    add(new H1("Vaadin CRM"),login);
}

但是,我不想使用此登录表单,而是使用通过水平布局或其他方式创建的自定义设计表单。问题是,这些组件或布局中的任何一个都没有此.setAction()方法,我可以在其中将数据发布提交到“登录”位置。我也无法在他们的网站上找到解决方案或来源。因此,Spring Security不会检索这些用户名密码数据。我该如何克服这个问题?预先感谢。

解决方法

您需要一个客户端action元素才能具有表单vaadin-login-form。如果您看一下<form>的实现方式,可以在这里看到vaadin-login-form元素:https://github.com/vaadin/vaadin-login/blob/master/src/vaadin-login-form.html#L23-L36

拥有提交表单操作的自定义登录表单的最简单方法可能是创建与PolymerTemplate类似的自定义Web组件,然后使用Element将其绑定到服务器。如果您要坚持使用服务器端Java,还可以尝试使用带有标签form的服务器端{{1}}来解决问题。