Thymeleaf是spring boot推荐使用的模板语法,它可以完全替代 JSP 。
从代码层次上讲:Thymeleaf是一个java类库,它是一个xml/xhtml/html5的模板引擎,可以作为mvc的web应用的view层。Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
有网无网的情况下模版页面都可以执行,美工的页面拿来就可以用,相对jsp减少了额外的标签,页面也更加简洁。
渲染SpringMvc拿到的数据
Thymeleaf渲染方式有很多种。可以使用Model、ModelAndView、ModelMap等对象进行渲染因为使用方式都差不多我示例Model和ModelAndView就行了 废话不多说上代码。
后端控制器代码:
使用Model
@RequestMapping("/types")
public String typespage(Model model){//使用Model当形参
List<Type> Typelist= typeService.selectTypeList();//要渲染的数据源
//"list"相当于是键 Typelist是值 list要和前端渲染的数据名字相对应
model.addAttribute("list",Typelist);
//返回要渲染的视图
return "admin/types";
}
使用ModelAndView
modelAndView基本和Model差不多,只是ModelAndView是要setViewName绑定视图页面
使用modelAndView可以写一个控制器方法然后请求这个方法就会显示绑定的视图页面
ModelAndView使用
@RequestMapping("/test")
public ModelAndView test(){
List<Type> list= typeService.selectTypeList();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("list", list);
modelAndView.setViewName("admin/types");
return modelAndView;
}
前端代码:
<tbody >
<!-- lists相当于引用的一个变量名可以自定义 ${list}是后端控制器赋值时候的参数名 -->
<tr align="center" th:each="lists:${list}">
<td th:text="${lists.id}"></td>
<td th:text="${lists.name}"></td>
</tr>
</tbody>
效果图:
使用Model对象
使用ModelAndView对象