Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 绑定单个sf:具有多个bean属性的输入spring表单标记_Java_Spring_Spring Mvc_Spring Form - Fatal编程技术网

Java 绑定单个sf:具有多个bean属性的输入spring表单标记

Java 绑定单个sf:具有多个bean属性的输入spring表单标记,java,spring,spring-mvc,spring-form,Java,Spring,Spring Mvc,Spring Form,我想使用spring标签制作一个表单,这样用户就可以使用他的电子邮件或手机号码或用户名和密码登录 <sf:form method="POST" modelAttribute="loginBean"> <label for="user_email">User Name/Email/Mobile:</label> <sf:input path="email,mobile,username" value="${user.email}" />

我想使用spring标签制作一个表单,这样用户就可以使用他的电子邮件或手机号码或用户名和密码登录

<sf:form method="POST" modelAttribute="loginBean">
    <label for="user_email">User Name/Email/Mobile:</label>
    <sf:input path="email,mobile,username" value="${user.email}" />

    <label for="user_password">Password:</label>
    <sf:input path="password" />

    <input type="submit" value="submit" />
</sf:form>
我被困在这里,用多个bean属性绑定单个输入标记


请帮帮我。

可能有两种方法:

  • 在登录栏中使用单个
    字符串登录
    字段和一个带有
    登录
    路径的表单字段。在服务器端,您应该以某种方式识别输入的内容,并根据识别的方式尝试登录3次
  • -

  • 创建3个表单字段,并添加一些逻辑,以便只允许填写一个字段。根据非空字段登录
  • 更新:

  • 创建一个方法tryComplexLogin(login,password),您可以在其中尝试查找具有密码的用户,并在DB中检查所有3个字段值

  • 谢谢你的回答。第一个看起来很不错。请在第二种方法中告诉我,即创建3个表单字段,然后所有表单字段都将对用户可见或仅对一个可见。这取决于您的要求。它可以是单选按钮来选择要使用的字段。或者,当一个字段被填充时,所有3个字段和2个字段都被禁用。
    public class LoginBean {
    private String email;
    private String password;
    private String mobile;
    private String username;
    //getter setter 
    }
    
    tryLoginWithEmail(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword()); 
    tryLoginWithMobile(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword());
    tryLoginWithUsername(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword());
    
    select * from users
    where
      (name =:loginNameParam and password=:passwordParam)
    OR
      (email =:loginNameParam and password=:passwordParam)
    OR
      (mobile =:loginNameParam and password=:passwordParam)