在整个的springboot之中支持最好的页面显示模板就是thymeleaf,而且使用此开发模板可以完全避免掉JSP存在最大的败笔在于很多人在jsp文件里面编写过多的Scriptle代码,这种结构不方便维护和阅读 。而且在编写JSP的时候 你会发现你必须要导入一些标签库等等概念,所有现在有个更加简化的thymeleaf 开发框架实现
2.1信息显示
在MVC的设计开发过程之中,很多情况下都需要通过控制器将一些显示的内容交给页面来完成,所以首先来观察一个最简单的信息显示。
2.1 显示一个普通的文本信息现在假设说在控制器里面传输了一些简单的信息内容:
package cn.mldn.microboot.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import cn.mldn.microboot.util.controller.AbstractBaseController;@Controllerpublic class MessageController extends AbstractBaseController { @RequestMapping(value = "/show", method = RequestMethod.GET) public String show(String mid, Model model) { // 通过model可以实现内容的传递 model.addAttribute("url", "www.mldn.cn"); // request属性传递包装 model.addAttribute("mid", mid); // request属性传递包装 return "message/message_show"; // 此处只返回一个路径, 该路径没有设置后缀,后缀默认是*.html }}
而后在message_show.html 页面里面要进行数据显示时只需要通过 “${属性名称} ”即可完成
message_show.html
SpringBoot模版渲染
发现在"p"元素之中出现有一个熟悉 th:text 而这个th 就是thymeleaf的支持语法 表示显示的是一个普通的文本信息;
2. 在正规的开发环境下 控制器传递过来的内容只有核心文本 ,但是能不能传递带有样式或者是html标签的数据呢?下面来做一个验证处理写一个操作方法 名字为showStyles方法
package cn.mldn.microboot.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import cn.mldn.microboot.util.controller.AbstractBaseController;@Controllerpublic class MessageController extends AbstractBaseController { @RequestMapping(value = "/message/showStyle", method = RequestMethod.GET) public String showStyle(Model model) { // 通过model可以实现内容的传递 model.addAttribute("url", "www.mldn.cn"); // request属性传递包装 return "message/message_show_style"; }}
编写message/message_show_style.html页面
SpringBoot模版渲染 访问
如果从安全的角度来讲肯定使用"th:text"的处理方式显示信息才安全,所有的html代码会被过滤掉,至少不会出现恶意代码。
3.在一个项目中肯定会存在一些资源文件,实际上使用"th:text"也可以获取资源文件的内容
现在假设定义的资源文件内容如下:
welcome.url=www.mldn.cnwelcome.msg=欢迎{0}光临!
随后可以在页面之中进行读取:
SpringBoot模版渲染 访问
4.除了以上的功能之外,在"th:text"操作里面还可以编写一些基础的运算
会发现在整个thymeleaf信息输出的处理之中,几乎都将可能使用到的支持全部设计在内了。