controller
@Controller
public class LoginWebController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String login(Model model) {
model.addAttribute("loginInfo",new LoginInfo());
return "login";
}
@RequestMapping(value = "/loginCheck", method = RequestMethod.POST)
public String login(@ModelAttribute(value = "loginInfo") LoginInfo loginInfo) {
String userName = loginInfo.getUserName();
String password = loginInfo.getPassword();
if(userService.selectUserName(userName) == null) {
return "login";
}else {
if(userService.selectPasswordByUserName(userName).getPassword().equalsIgnoreCase(password)) {
return "redirect:/home/"+userService.selectPasswordByUserName(userName).getUid()+"/1";
}else {
return "login";
}
}
}
}
html
- th:action="@{/loginCheck}"
- th:object="${loginInfo}"
- th:field=“userName”
- th:field=“password”
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/semantic-ui/2.2.4/semantic.min.css" >
<link rel="stylesheet" th:href="@{/css/me.css}">
<link rel="stylesheet" th:href="@{/css/animate.css}">
</head>
<body>
<div class="ui mobile reversed stackable grid m-margin">
<div class="ui segment m-container">
<form th:action="@{/loginCheck}" th:object="${loginInfo}" th:method="post">
<div class="ui middle aligned animated list">
<div class="m-align"><h4 class="ui green header animated rubberBand m-opacity-tiny">iBlog</h4></div>
<hr/>
<div class="item m-padded-tb">
<a class="ui orange left ribbon label">Username</a>
<div class="content">
<div class="ui left icon input vertical-align">
<input type="text" th:field="*{userName}" placeholder="userName">
<i class="user icon"></i>
</div>
</div>
</div>
<div class="item m-padded-tb">
<a class="ui teal left ribbon label">Password</a>
<div class="content">
<div class="ui left icon input vertical-align">
<input type="password" th:field="*{password}" placeholder="password">
<i class="lock icon"></i>
</div>
</div>
</div>
<div class="m-align"><button type="submit" class="small ui pink button m-opacity-tiny">登陆</button> </div>
</div>
</form>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/semantic-ui/2.2.4/semantic.min.js"></script>
</body>
</html>
LoginInfo(form表单信息)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginInfo {
private String userName;
private String password;
}