如何从数据库中获取用户ID和密码并传递给Spring MVC中的Method

时间:2015-09-21 10:54:56

标签: java spring jsp model-view-controller

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User Login.</title>
</head>
<body>
    <h4>User Login.</h4>
    <form:form method="post" name="loginForm" action="login-check">
        <table>
            <tr>
                <td>User Name:</td>
                <td><form:input path="name" value="${form.name}"/></td>
            </tr>
            <tr>
                <td>Password:</td>
                <td><form:input path="password" value="${form.password}"/></td>
            </tr>
            <tr>
                <td colspan="2" align="right"><input type="submit"
                    value="Submit"></td>
            </tr>
        </table>
        <div style="color: red">${error}</div>
    </form:form>

</body>
</html>

这是我的控制器:

@RequestMapping("/login-check")
    public ModelAndView  logincheck(@ModelAttribute Form person) {
        // TODO Auto-generated method stub

        int value=service.checkLogin("name", "password");

        if(value>0)
        {

        return "loginsucess";

        }
        else
        {
            return "failure";
        }
    }

我的表格Bean class我们有User Idpassword,还有一些fieldgettersetter我在一起想要从jsp页面获取输入,我必须传入checkLogin method这里我们定义检查登录

public int checkLogin(String userName, String userPassword) {
        // TODO Auto-generated method stub
        String SQL_QUERY = " from Form as o where o.userName=? and o.userPassword=?";

        int rowCount = jdbcTemplate.queryForInt(SQL_QUERY);
        return rowCount;
    }

我想获得jsp输入值,但无法得到请建议我如何获得我可以为此申请条件。

2 个答案:

答案 0 :(得分:1)

您必须使用计数查询并为预准备语句设置参数:

 String sql = "SELECT count(*) FROM Form WHERE username = ? and o.userPassword=?";
int count = jdbcTemplate.queryForInt(sql, new Object[] { userName, userPassword});

答案 1 :(得分:0)

在代码中执行以下更改

@RequestMapping("/login-form")
public String loginForm(Model model, Form field) {
    model.addAttribute("person", new Form()); // added
    return "login";
}

在表单中添加了modelAttribute。并且不要在form:input中指定属性,只需要路径属性。

<form:form method="post" modelAttribute="person" name="loginForm" action="login-check">
    ...
    <td><form:input path="name"/></td>
    ...

@ModelAttribute中添加

@RequestMapping("/login-check")
    public ModelAndView  logincheck(@ModelAttribute("person") Form person) {
        ...

现在,人物对象将从jsp中填充。确保使用有效的数据库查询。