Spring Boot特性

Spring Boot在Spring默认基础上,自动配置添加了以下特性:

  • 1.包含了ContentNegotiatingViewResolver和BeanNameViewResolver beans

  • 2.对静态资源的支持,包括对WebJars的支持。

  • 3.自动注册Converter,GenericConverter,Formmter beans

  • 4.对HttpMessageConverters的支持

  • 5.自动注册MessageCodeResolver

  • 6.对静态index.html的支持

  • 7.对自定义favicon的支持

  • 8.主动使用ConfigurableWebBindingInitializer bean

模板引擎

  • FreeMarker

  • Thymeleaf

  • Velocity(1.4版本之后弃用,Spring Framework4.3版本之后弃用)

  • Groovy

  • Mustache

注:jsp应该尽量避免使用,原因如下:

  • 1.jsp只能打包为:war格式,不支持jar格式,只能在标准的容器中运行(tomcat,jetty)

  • 2.内嵌的Jetty目前不支jsp

  • 3.Undertow不支持jsp

  • 4.jsp自定义错误页面不能覆盖spring boot默认的错误页面

FreeMarker

1.引入Maven

pom.xml

<!– Freemarker模板 –>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2.编写Controller

WebController.java

package com.benzhu.xyz.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value="/web")
public class WebController {

    private static final Logger LOG = LoggerFactory.getLogger(WebController.class);

    @RequestMapping("index")
    public String index(ModelMap map) {
        LOG.info("导航到index!");
        map.put("title", "笨猪");
        return "index";
    }
}

3.编写ftl文件

index.ftl

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
</head>
<body>
<h1>${title}</h1>
</body>
</html>

4.启动访问测试

localhost:8080/web/index

5.格式化

注意在此模板中的数字会被格式化带逗号,在属性中添加下面的语句取消自动格式化。

application.properties

#freemarker 数字格式不用逗号隔开
spring.freemarker.settings.number_format=0.##

6.FreeMarker IDE安装

安装可以使flt文件内编辑html变得方便(需要有网)。

  • 1.打开Eclipse >> Help >> Install New Software

  • 2.点击and,再出来的对话框中的Location中输入:http://download.jboss.org/jbosstools/updates/development/indigo/,name随便取一个即可。然后会列出来所有可用的插件。

  • 3.如果只需要安装FreeMarker IDE,可以在 JBoss Application Development 下找到并选中它,然后根据向导即可安装成功。

  • 4.退出Eclipse重新进入,在window >> Preferences 左边的树形栏里出现FreeMarker Editor一项。

  • 5.在General >> Editors >> File Associations下,为*.html和*.htm文件添加(add)FreeMarker Editor;在*.ftl文件添加(add)HTML Editor。

  • 6.在编辑混合有HTML和FreeMarker标记的文件时,可以选择右击文件 >> Open with HTML Editor 或者 Open with FreeMarker Editor。

Thymeleaf

1.引入Maven

pom.xml

<!– Thymeleaf模板 –>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2.如同FreeMarker的过程一样创建一个WebController

3.编写HTML文件

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
</head>
<body>
<h1 th:text="${title}"></h1>
</body>
</html>

4.启动访问测试

localhost:8080/web/index

Jsp

1.创建项目时候注意选择war

2.引入Maven

pom.xml

!– 使用模板引擎对JSP依赖 –>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
</dependency>

3.修改application配置文件

application.properties

#配置解析器的前缀和后缀
spring.mvc.view.prefix:/WEB-INF/templates/
spring.mvc.view.suffix:.jsp

4.如同FreeMarker的过程一样创建一个WebController

5.创建jsp页面

注意看结构图创建/WEB-INF/templates/路径

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>${title}</h1>
<h2>测试</h2>
</body>
</html>

6.启动访问测试

localhost:8080/web/index