SpringInAction第二章笔记

对应练习于 https://github.com/AganRun/SpringInAction

第二章 开发web应用

2.1 展现信息

Spring提供了多种定义视图的方式,包括JavaServer Pages(JSP)、Thymeleaf、FreeMarker、Mustache和基于Groovy的模板。

使用Thymeleaf

  1. 添加Starter启动器。
  2. 在运行时,SpringBoot的自动配置发现Thymeleaf在类路径中,因此会为SpringMVC创建支持Thymeleaf视图的bean。

Thymeleaf模板就是增加了一些额外元素属性的HTML。例如"th:each"会迭代一个元素集合。

2.3 校验表单输入

有种校验是在方法中添加大量乱七八糟的if/then代码块,但是这样会难以阅读和调试。

Spring支持JAVA的Bean校验API。在SpringBoot项目中,Validation API以及Validation API的Hibernate实现将会作
为SpringBoot web starter的传递性依赖自动添加到项目中。

使用步骤

  1. 在要被校验的类上声明校验规则
  2. 在控制器方法中声明进行校验
  3. 修改表单视图以展示校验错误

复杂的自定义逻辑可以使用正则表达式

@Pattern(regexp = "^(0[1-9]|1[0-2])([\\/])([1-9][0-9])$", message = "Must be formatted MM/YY")

2.4 视图控制器

定义Controller除了可以通过新建类,添加@controller注解,还可以通过类实现WebMvcConfigure接口实现。

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
    }
}

Thymeleaf作为渲染模板,默认只有第一次使用的时候解析一次,解析的结果会被后续的请求使用。
这样可以提升性能,对于开发环境,可以通过Spring.thymeleaf.cache=false禁用。

第二章小结

  • SpringMVC是基于注解的,通过@RequestMapping之类的注解启用请求处理方法的声明。
  • SpringMVC支持校验,通过Java Bean Validation API 和 Validation API的实现完成
  • Spring支持多种视图方案

你可能感兴趣的:(SpringInAction第二章笔记)