<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 Id
和password
,还有一些field
与getter
和setter
我在一起想要从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
输入值,但无法得到请建议我如何获得我可以为此申请条件。
答案 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中填充。确保使用有效的数据库查询。