开发传统 Java WEB 工程时,我们可以使用 JSP 页面模板语言,但是在 SpringBoot 中已经不推荐使用了。SpringBoot 支持如下页面模板语言
Thymeleaf
FreeMarker
Velocity
Groovy
JSP
上面并没有列举所有 SpringBoot 支持的页面模板技术。其中 Thymeleaf 是 SpringBoot 官方所推荐使用的,下面来谈谈 Thymeleaf 一些常用的语法规则。
添加 Thymeleaf 依赖
要想使用 Thhymeleaf,首先要在 pom.xml 文件中单独添加 Thymeleaf 依赖。
org.springframework.boot spring-boot-starter-thymeleaf Spring Boot默认存放模板页面的路径在src/main/resources/templates或者src/main/view/templates,这个无论是使用什么模板语言都一样,当然默认路径是可以自定义的,不过一般不推荐这样做。另外Thymeleaf默认的页面文件后缀是.html。数据显示
在 MVC 的开发过程中,我们经常需要通过 Controller 将数据传递到页面中,让页面进行动态展示。
显示普通文本
创建一个 Controller 对象,在其中进行参数的传递
@Controller
public class ThymeleafController {
@RequestMapping(value = "show", method = RequestMethod.GET)
public String show(Model model){
model.addAttribute("uid","123456789");
model.addAttribute("name","Jerry");
return "show";
}
}
在 SpringBoot 默认的页面路径下创建 show.html 文件,内容如下
如果我们要显示的信息是存在资源文件中的,同样可以在页面中显示,例如资源文件中定义了内容 welcome.msg=欢迎{0}光临!。可以在页面中将其显示
另外,在th:utext中还能做一些基础的数学运算 显示带有样式的普通文本如果我们想要传递到的页面的信息,它本身是带有 CSS 样式的,这个时候如何在页面中将携带的样式信息也显示出来?此时我们的控制器方法这样写。
@RequestMapping(value = "showStyle", method = RequestMethod.GET)
public String showStyle(Model model){
model.addAttribute("uid","123456789");
model.addAttribute("name","Jerry");
return "show_style";
}
此时页面中需要借助 th:utext 属性进行显示
显示对象
我们常常需要将一个 bean 信息展示在前端页面当中。
用于前端展示的 VO 类
public class User implements Serializable {
private Long uid ;
private String name ;
private Integer age ;
private Date birthday ;
private Double salary ;
//省略 get/set 方法
}
控制器方法
@RequestMapping(value = "/message/member_show", method = RequestMethod.GET)
public String memberShow(Model model) {
User vo = new User();
vo.setUid(12345678L);
vo.setName("尼古拉丁.赵四");
vo.setAge(59);
vo.setSalary(1000.00);
vo.setBirthday(new Date());
model.addAttribute("member", vo);
return "message/member_show";
}
页面展示
数据处理
在 thymeleaf 之中提供有相应的集合的处理方法,例如:在使用 List 集合的时候可以考虑采用 get()方法获取指定索引的数据,那么在使用 Set 集合的时候会考虑使用 contains()来判断某个数据是否存在,使用 Map 集合的时候也希望可以使用 containsKey()判断某个 key 是否存在,以及使用 get()根据 key 获取对应的 value,而这些功能在之前并不具备,下面来观察如何在页面中使用此类操作
控制器方法向页面传递一些数据,以供操作
@RequestMapping(value = "/user/set", method = RequestMethod.GET)
public String set(Model model) {
Set allNames = new HashSet() ;
List allIds = new ArrayList() ;
for (int x = 0 ; x < 5 ; x ++) {
allNames.add("boot-" + x) ;
allIds.add(x) ;
}
model.addAttribute("names", allNames) ;
model.addAttribute("ids", allIds) ;
model.addAttribute("mydate", new java.util.Date()) ;
return "user_set" ;
}
数据处理
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于