项目源码: -> thymeleaf
私聊QQ: 1486866853
1.pom.xml中依赖jar包(注意加红字段)
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.3.RELEASE MVC springbootMVC 0.0.1-SNAPSHOT springbootMVC Demo project for Spring Boot 1.8
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin
2.在 src/main/resources 新建 templates 目录 和 application.yml(替代application.properties, 在springBoot项目中如果两者都有会先加载application.yml, 然后再加载 application.properties 覆盖yml文件, 建议只留 yml文件)
application.yml 的配置内容(注意:spring.thymeleaf.mode: LEGACYHTML5,解除html的书写规范)
server: #springBoot内置tomact的端口号 port: 8086 servlet: #springBoot项目的前缀名 context-path: /thymeleafspring: # thymeleaf 模板引擎配置 thymeleaf: # 不设置缓存 cache: false # thymeleaf模板 解除严格约束(对html5没有结束符的标签解决) mode: LEGACYHTML5 # thymeleaf修饰的动态页面 自定义根目录(springBoot默认的动态页面存放文件夹就是templates) prefix: classpath:/templates/
3. ModelAndView的数据模型 : 在 src/main/java 新建 controller 文件夹,在新建 ModelAndViewController.java 类, 在templates目录下新建对应的 modelAndView.html
3.1 ModelAndViewController.java
package demo.controller;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;/** * @author GrassPrince * @time 2019年3月23日 -下午9:01:57 * @description:测试ModelAndView的模型 */@RequestMapping("/ModelAndView")@Controllerpublic class ModelAndViewController { //测试new ModelAndView(String viewName)构造方法 @GetMapping("/modelAndView1") public ModelAndView modelAndView1() { //new ModelAndView("/modelAndView")和new ModelAndView("modelAndView")都可以// return new ModelAndView("/modelAndView"); return new ModelAndView("modelAndView"); //重定向的地址注意,完全地址且前面需要加/// return new ModelAndView("redirect:/ModelAndView/modelAndView2"); } //测试ModelAndView(String viewName, String modelName, Object modelObject)构造方法 @GetMapping("/modelAndView2") public ModelAndView modelAndView2() { return new ModelAndView("/modelAndView", "model2", "modelObject 2"); } //测试ModelAndView(String viewName, @Nullable Mapmodel)构造方法 @GetMapping("/modelAndView3") public ModelAndView modelAndView3(Map map) { map.put("map1", "obj 1"); map.put("map2", "obj 2"); return new ModelAndView("modelAndView", map); } //测试addObject(String attributeName, @Nullable Object attributeValue) // addObject(Object attributeValue)方法 @GetMapping("/modelAndView4") public ModelAndView modelAndView4() { ModelAndView mav = new ModelAndView(); //设置返回的url mav.setViewName("modelAndView"); //变量名, 变量值 mav.addObject("obj1", "modelObject 4"); // 变量值(变量名为变量值的所属类的类名) mav.addObject("modelObject 5"); return mav; }}
3.2 modelAndView.html
测试ModelAndView Hello ModelAndView
3.3 启动项目下的 DemoApplication.java (myeclipse2018右击,Run As / Debug As -> Spring Boot App)
浏览器地址栏输入 : http://localhost:8086/thymeleaf/ModelAndView/modelAndView2 , 页面显示如下
4.Model数据模型 ,在 controller 文件夹下新建 ModelController.java 类, 在 templates 目录下新建 model.html
4.1 ModelController.java
package demo.controller;import java.util.HashMap;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;/** * @author GrassPrince * @time 2019年3月24日 -上午12:15:05 * @description:Model的使用,Model必须在方法参数中定义 */@RequestMapping("/Model")@Controllerpublic class ModelController { //测试重定向 @GetMapping("/model4") public String model4(Model model) { return "redirect:https://www.baidu.com"; } //测试addAttribute(Object attributeValue)方法 @GetMapping("/model1") public String model1(Model model) { // 对象值, 对象名为对象值所属类型 model.addAttribute("addAttribute(Object attributeValue)"); return "model"; } //测试addAttribute(String attributeName, @Nullable Object attributeValue)方法 @GetMapping("/model2") public String model2(Model model) { // 对象名,对象值 model.addAttribute("content", "addAttribute(String attributeName, @Nullable Object attributeValue)"); return "model"; } //测试addAllAttributes(Mapattributes)方法 @GetMapping("/model3") public String model3(Model model) { Map map = new HashMap (); map.put("map", "addAllAttributes(Map attributes)"); model.addAllAttributes(map); return "model"; }}
4.2 model.html
测试Model Hello Model
4.3 启动项目下的 DemoApplication.java (myeclipse2018右击,Run As / Debug As -> Spring Boot App)
浏览器地址栏输入 : http://localhost:8086/thymeleaf/Model/model1, 页面显示如下