springboot整合thymeleaf,freemarker模板和jsp

xiaoxiao2021-02-28  43

thymeleaf模板:

引入依赖

<dependency>

            <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

properties文件 ###THYMELEAF (ThymeleafAutoConfiguration) #spring.thymeleaf.prefix=classpath:/templates/ #spring.thymeleaf.suffix=.html #spring.thymeleaf.mode=HTML5 #spring.thymeleaf.encoding=UTF-8 # ;charset=<encoding> is added #spring.thymeleaf.content-type=text/html # set to false for hot refresh

spring.thymeleaf.cache=false    关闭缓存

编写模板:

编写模板文件src/main/resouces/templates/hello.html: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"       xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">     <head>         <title>Hello World!</title>     </head>     <body>         <h1 th:inline="text">Hello.v.2</h1>         <p th:text="${hello}"></p>     </body> </html>

controller

@Controller public class TemplateController {          /**      * 返回html模板.      */     @RequestMapping("/helloHtml")     public String helloHtml(Map<String,Object> map){         map.put("hello","from TemplateController.helloHtml");         return "/hello";     }     注意:返回的是字符串必须是@Controller,不能是@RestController注解,如果使用@RestController注解需返回ModelAndView

}

freemarker模板:

引入依赖

<dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-freemarker</artifactId>

</dependency>

properties文件 ###FREEMARKER (FreeMarkerAutoConfiguration) spring.freemarker.allow-request-override=false spring.freemarker.cache=true  关闭缓存 spring.freemarker.check-template-location=true spring.freemarker.charset=UTF-8 spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=false spring.freemarker.expose-session-attributes=false spring.freemarker.expose-spring-macro-helpers=false #spring.freemarker.prefix= #spring.freemarker.request-context-attribute= #spring.freemarker.settings.*= #spring.freemarker.suffix=.ftl #spring.freemarker.template-loader-path=classpath:/templates/ #comma-separated list #spring.freemarker.view-names= # whitelist of view names that can be resolved 编写模板文件.ftl 模板必须放到src/main/resources/templates目录下。模板扩展名默认为ftl 网页中可能会用到,图片、css、js等静态资源。 需要把静态资源放到src/main/resources下的static目录下 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"       xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">     <head>         <title>Hello World!</title>     </head>     <body>         <h1>Hello.v.2</h1>         <p>${hello}</p>     </body> </html>

访问

    @RequestMapping("/helloFtl")     public String helloFtl(Map<String,Object> map){         map.put("hello","from TemplateController.helloFtl");         return "/hello";     }

jsp支持:

<!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>1.4.1.RELEASE</version>     </parent>  <!-- 指定一下jdk的版本 ,这里我们使用jdk 1.8 ,默认是1.6 -->

    <java.version>1.8</java.version>

<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency> <!-- servlet 依赖. -->         <dependency>             <groupId>javax.servlet</groupId>             <artifactId>javax.servlet-api</artifactId>             <scope>provided</scope>         </dependency> JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。 <dependency>             <groupId>javax.servlet</groupId>             <artifactId>jstl</artifactId>         </dependency> <!-- tomcat 的支持.-->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-tomcat</artifactId>             <scope>provided</scope>         </dependency>         <dependency>             <groupId>org.apache.tomcat.embed</groupId>             <artifactId>tomcat-embed-jasper</artifactId>             <scope>provided</scope>         </dependency>

application.properties文件 # 页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/jsp/ # 响应页面默认后缀 spring.mvc.view.suffix=.jsp

controller @Controller public class HelloController { private String hello;              @RequestMapping("/helloJsp")     public String helloJsp(Map<String,Object> map){         map.put("hello", hello);         return "helloJsp";     }

}

 src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面:helloJsp.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body>     helloJsp     <hr>     ${hello}      </body> </html>

转载请注明原文地址: https://www.6miu.com/read-2626417.html

最新回复(0)