SpringBoot 深入解析——web 应使用开发(十六)

  • 时间:2018-09-09 21:54 作者:Java后端开发 来源:Java后端开发 阅读:862
  • 扫一扫,手机访问
摘要:前言我们知道,在web开发时,一般都会涉及到很多的静态资源,如js、image、css文件等。SpringBoot的默认的静态文件目录是:/static/public/resources/META-INF/resources所以,一般我们只要要把静态文件放入前面的四个任逐个个就可,默认都放在stat

前言

我们知道,在web开发时,一般都会涉及到很多的静态资源,如js、image、css文件等。

SpringBoot的默认的静态文件目录是:

  • /static
  • /public
  • /resources
  • /META-INF/resources


SpringBoot 深入解析——web 应使用开发(十六)


所以,一般我们只要要把静态文件放入前面的四个任逐个个就可,默认都放在static下,对应路径即为:src/main/resources/static。

而从官网文档里也可以获悉,为了实现动态的html,SpringBoot是通过模版引擎进行页面结果渲染的,目前(1.5.15)版本的提供默认配置的模版引擎主要为:

  • FreeMarker
  • Groovy
  • Thymeleaf
  • Mustache


SpringBoot 深入解析——web 应使用开发(十六)


对于模版引擎而言,SpringBoot默认存放模版文件的路径为src/main/resources/templates,当然也可以通过配置文件进行修改。由于不同的模版引擎对应的配置属性不一样,所以在具体讲解模版引擎时,会提到。

当然了,也可以用jsp,但官方已经不建议用JSP,本文也会讲解下SpringBoot下JSP的支持,毕竟有很多老的项目还在用JSP。

知道以上的少量默认配置和知识点后,即可以进行模版引擎的集成用了。本章主要讲解常使用的FreeMarker、Thymeleaf及JSP三个的集成和用,其余的基本使用法都一样,就是各模版引擎的语法的差异了。


FreeMarker支持


FreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并使用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通使用工具。


SpringBoot 深入解析——web 应使用开发(十六)


1、POM依赖

org.springframework.boot spring-boot-starter-freemarker


2、application.properties配置加入相关配置:

# 缓存配置 开发阶段应该配置为false 由于经常会改spring.freemarker.cache=false # 模版后缀名 默认为ftlspring.freemarker.suffix=.html # 文件编码spring.freemarker.charset=UTF-8 # 模版加载的目录spring.freemarker.template-loader-path=classpath:/templates/ # 配置# locale 该选项指定该模板所使用的国家/语言选项# number_format 指定格式化输出数字的格式:currency、# boolean_format 指定两个布尔值的语法格式,默认值是true,false# date_format,time_format,datetime_format 定格式化输出日期的格式# time_zone 设置格式化输出日期时所用的时区# 数字 千分位标识spring.freemarker.settings.number_format=,##0.00


详细的配置可参见

org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties类,或者者直接IDE直接配置文件点击查看。


3、编写控制层

FreemarkerController.kava:

//由于是返回页面 所以不能是@RestController@Controller@RequestMapping("/freemarker")public class FreemarkerController { //正常和springmvc设置返回参数是意义的使用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/resources/templates/freemarker.html return "freemarker"; } @GetMapping("/mv") public String index(String name,ModelAndView mv) { mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/resources/templates/freemarker.html return "freemarker"; }}


4、编写模版文件

freemarker.html:

freemarker简单示例

Hello Freemarker

名称:${name!},来自:${from}

5、启动应使用

访问:http://127.0.0.1:8080/freemarker/mv?name=oKong 或者者 http://127.0.0.1:8080/freemarker/map?name=oKong 就能查看页面了。


SpringBoot 深入解析——web 应使用开发(十六)


关于少量Freemarker的语法这里就不说明了,大家可到官网查看下:https://freemarker.apache.org/docs/index.html


Thymeleaf支持


Thymeleaf是一个XML/XHTML/HTML5模板引擎,可使用于Web与非Web环境中的应使用开发。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创立方式,因而,也可以使用作静态建模。你可以用它创立经过验证的XML与HTML模板,相对于编写逻辑或者代码,开发者只要将标签属性增加到模板中就可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。

1、pom依赖

org.springframework.boot spring-boot-starter-thymeleaf


2、application.properties配置加入相关配置:

# 启使用缓存:建议生产开启spring.thymeleaf.cache=false# 建议模版能否存在spring.thymeleaf.check-template-location=true# Content-Type 值spring.thymeleaf.content-type=text/html # 能否启使用spring.thymeleaf.enabled=true# 模版编码spring.thymeleaf.encoding=UTF-8# 应该从解析中排除的视图名称列表(使用逗号分隔)spring.thymeleaf.excluded-view-names= # 模版模式spring.thymeleaf.mode=HTML5 # 模版存放路径spring.thymeleaf.prefix=classpath:/templates/ # 模版后缀spring.thymeleaf.suffix=.html


3、编写控制层

ThymeleafController.java:

@Controller@RequestMapping("/thymeleaf")public class ThymeleafController { // 正常和springmvc设置返回参数是意义的使用法了 @GetMapping("/map") public String index(String name, ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); // 模版名称,实际的目录为:src/main/resources/templates/thymeleaf.html return "thymeleaf"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); // 模版名称,实际的目录为:src/main/resources/templates/thymeleaf.html mv.setViewName("thymeleaf"); return mv; }}

4、编写模版文件

thymeleaf.html

thymeleaf简单示例

Hello thymeleaf

默认值

5、启动应使用

访问:http://127.0.0.1:8080/thymeleaf/mv?name=oKong 或者者 http://127.0.0.1:8080/thymeleaf/map?name=oKong 就能查看页面了。


SpringBoot 深入解析——web 应使用开发(十六)


JSP支持


尽管SpringBoot官方已经不建议用jsp了,但在少量老的项目迁移时,jsp的支持是无须置疑的,所以还是需要兼容的。。

1、pom依赖加入

org.apache.tomcat.embed tomcat-embed-jasper javax.servlet jstl


2、application.properties配置加入相关配置:

#jsp 支持spring.mvc.view.suffix=.jspspring.mvc.view.prefix=/WEB-INF/jsp/


3、编写控制层

JspController.java

@Controller@RequestMapping("/jsp")public class JspController { //正常和springmvc设置返回参数是意义的使用法了 @GetMapping("/map") public String index(String name,ModelMap map) { map.addAttribute("name", name); map.addAttribute("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/webapp/jsp/index.html return "index"; } @GetMapping("/mv") public ModelAndView index(String name) { ModelAndView mv = new ModelAndView(); mv.addObject("name", name); mv.addObject("from", "lqdev.cn"); //模版名称,实际的目录为:src/main/webapp/jsp/index.html mv.setViewName("index"); return mv; }}

4、webapp/WEB-INF/jsp目录下编写jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>jsp示例

Hello Jsp

名称:${name},来自:${from}


5、启动应使用

访问:http://127.0.0.1:8080/jsp/mv?name=oKong 或者者 http://127.0.0.1:8080/jsp/map?name=oKong 就能查看页面了。


SpringBoot 深入解析——web 应使用开发(十六)


注意:在用spring-boot-maven-plugin打包插件时,默认情况下打包的应使用时访问不了jsp目录文件的,需要把版本修改为1.4.2.RELEASE版本,同时pom中加入resource配置:

src/main/webapp META-INF/resources **/** src/main/resources **/** false


总结

本章主要是讲解利使用模版引擎进行动态页面实现功能,对于有此需要的同学可以去看下用的模版引擎的相关用教程,这里就不多加阐述。目前互联网上很多大佬都有springboot系列教程,如有雷同,请多多包涵,若文中有所错误之处,还望提出!需要看SpringBoot系列前十四章需移步本人主页浏览。

SpringBoot系列:

SpringBoot深入解析——基于 Docker 的简单部署(十四)

https://www.toutiao.com/i6597750315166990862/

SpringBoot深入解析——基于 Postman的RESTful 接口测试(十五)

https://www.toutiao.com/i6597747954155520515/


  • 全部评论(0)
最新发布的资讯信息
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
【系统环境|软件环境】一步步教你开发、部署第一个去中心化应用 - 宠物商店(2022-03-15 15:13)
【系统环境|软件环境】循序渐进!一文学会高性能开发十大必需掌握的核心技术。(2022-03-15 15:13)
【系统环境|软件环境】Python游戏开发,pygame模块,Python实现贪吃蛇小游戏(2022-03-15 15:13)
【系统环境|软件环境】Spring Cloud Feign 记录单个服务耗时并处理 Hystrix 线程隔离模式!(2022-03-15 15:13)
【系统环境|软件环境】js数组方法全解(2022-03-15 15:12)
【系统环境|软件环境】字节二面:小伙子你来说下什么是伪共享?如何避免?(2022-03-15 15:12)
血鸟云
手机二维码手机访问领取大礼包
返回顶部