0

我想使用弹簧标签制作一个表格,以便用户可以使用他的电子邮件或手机号码或用户名和密码登录。

<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>

登录豆

public class LoginBean {
private String email;
private String password;
private String mobile;
private String username;
//getter setter 
}

我被困在这里将单个输入标签与多个 bean 属性绑定。

请帮帮我。

4

1 回答 1

0

可能有2个接近:

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

-

tryLoginWithEmail(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword()); 
tryLoginWithMobile(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword());
tryLoginWithUsername(loginBeanInstance.getLogin(), loginBeanInstance.getPassoword());
  1. 创建一个 3 个表单字段并添加一些逻辑以允许仅填写一个字段。根据非空字段登录。

更新:

  1. 创建一种方法 tryComplexLogin(login, password) ,您可以在其中尝试使用密码查找用户并登录检查数据库中的所有 3 个字段值

select * from users
where
  (name =:loginNameParam and password=:passwordParam)
OR
  (email =:loginNameParam and password=:passwordParam)
OR
  (mobile =:loginNameParam and password=:passwordParam)
于 2015-03-05T08:20:53.467 回答