绑定单个sf:带有多个bean属性的输入spring form标签

时间:2015-03-05 08:10:35

标签: java spring spring-mvc spring-form

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

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

LoginBean

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

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

请帮帮我。

1 个答案:

答案 0 :(得分:0)

可能有两个接近:

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

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

      1. 创建一个方法tryComplexLogin(登录名,密码),您可以尝试使用密码查找用户并登录检查数据库中的所有3个字段值
      2. select * from users
        where
          (name =:loginNameParam and password=:passwordParam)
        OR
          (email =:loginNameParam and password=:passwordParam)
        OR
          (mobile =:loginNameParam and password=:passwordParam)