springmvc+thymeleaf简单登陆

controller

@Controller
public class LoginWebController {

    @Autowired
    private UserService userService;

    @RequestMapping("/login")
    public String login(Model model) {
        //设置一个模板去获取填写的form内容
        //将要提交的内容封装为一个类
        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;
}
发布了71 篇原创文章 · 获赞 0 · 访问量 1551

猜你喜欢

转载自blog.csdn.net/qq_42977003/article/details/104825113