SpringBoot+Thymeleaf实现简单的MVC

一、阶段一:MVC的单向实现 主要内容:在Controller中实例化Model对象,通过thymeleaf引擎把Model对象渲染到View中,最终为用户返回融合生成后的html。
1.构建Model类User,存储用户信息

package com.zhbit.mpw.model; import lombok.Data; @Data public class User { //用户ID private int id; //用户名 private String name; //密码 private String pwd; }

注意:
  • 引入了lombok插件,在类定义时注解@Data;
  • Get&Set不会生成,程序标红但能编译;》解决办法:在IDE的Setting中更新lombok插件;
2.构建View的html模板页面,调用thymeleaf标签,注入对象变量
MVC-Show - 锐客网

【SpringBoot+Thymeleaf实现简单的MVC】注意:
  • thymeleaf的模板页面都存放在resources ->tempaltes中,以.html结尾。
  • 在html标签中,加入xmlns:th="www.thymeleaf.org,表示引入thymeleaf引擎;
  • content="width=divice-width,initial-scale=1.0 表示自适应设备屏幕宽度;满屏显示;
  • ${user.id}表示取user对象(Model)的id值,单个值。
3.构建控制器:实例化Model对象,通过模板引擎渲染到html模板中,并返回渲染后的html给用户
package com.zhbit.mpw.controller; import com.zhbit.mpw.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import lombok.Data; @Controller public class MVCDemoController {@RequestMapping("/mvcdemo") public ModelAndView showUser(){User user = new User(); user.setId(1); user.setName("jack"); user.setPwd("123"); ModelAndView mv = new ModelAndView("mvcshow"); mv.addObject("user",user); return mv; } }

注意:
  • @Controller表示一个普通的控制器,return时会自动去找thymeleaf的模板;(不能直接返回字符串String了。)
  • user的set方法是由插件lombok自动加载的,所以IDE可能会标红,表示没找到set方法,更新lombok插件就好了。
  • ModelAndView对象是用于把具体Model对象渲染至View页面中,并返回融合后的html页面。
二、阶段二:双向MVC 主要内容:
  1. 用户输入用户名和密码;
  2. Controller获取请求,并验证用户输入是否正确;
  3. 返回结果页面(登录成功进入main页,登录失败返回login页)
1.构建一个用于获取用户输入的表单页面form.html
Form - 锐客网
Name: PWD:

Thymeleaf模板View存放在resources的templates文件夹下,Thymeleaf模板引擎将会自动加载。
2.在新建UserController,专门处理关于用户的所有请求
package com.zhbit.mpw.controller; import com.zhbit.mpw.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class UserController {@GetMapping("/test") public String showLogin(User user){ return "form"; } @PostMapping("/check") public ModelAndView loginCheck(User user){ String name = user.getName().toString(); ModelAndView mv = new ModelAndView("mvcshow"); mv.addObject("user",user); return mv; } }

最终效果:
用户访问:http://localhost:8088/test,输入用户名和密码,点击提交;
若用户和密码正确,跳转到使用模板mvcshow.html构建页面,并返回结果。
三、阶段三:加入登录时输入验证 (略)请查阅书本P99中的实例8

    推荐阅读