SpringBoot教程(2):静态化

今天继续带来SpringBoot专题教程:静态化。

thymeleaf模板

SpringBoot中默认使用thymeleaf模板引擎整合html。

SpringBoot不建议使用jsp。

html路径默认为

src/main/resources/templates/*.html,默认是从templates文件夹里找html资源。

1.pom.xml中配置thymeleaf的依赖:

<dependency>
    <!--在pom.xml加入模板引擎thymeleaf的依赖:-->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2. resources下创建templates文件夹,并新建tem.html:

注意:IDEA新建html,默认是不会补齐后面这个</meta>,我们必须手动补齐,否则页面会报错:

控制台会报错:

3. Controller:

@Controller
@RequestMapping("/tem")
public class TemController {
    @RequestMapping("thymleaf")
    public String hello(){
        return "tem";
    }
}

4. 打开浏览器,输入http://localhost:8080/tem/thymleaf

5. 更改默认路径:

(1)resources文件夹中新建application.properties:

########################################################
###THYMELEAF (ThymeleafAutoConfiguration)
###src/main/resources/templates/*.html 可改
########################################################
#路径
spring.thymeleaf.prefix=classpath:/tem/
#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

(2)重新运行:

freemarker模板

1. pom.xml:

<!--在pom.xml加入模板引擎freemarker的依赖:-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2. *.ftl文件默认也是在

src/main/resources/templates/*.ftl中,前缀默认在templates文件夹中寻找资源,新建hello.ftl:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"></meta>
    <title>tem</title>
</head>
<body>
<p>欢迎来到演示freemarker演示页面</p>
</body>
</html>

3. Controller:

@Controller
@RequestMapping("/templates")
public class TemController {
    @RequestMapping("freemarker")
    public String hello2(){
        return "hello";
    }
}

4. 打开浏览器,输入http://localhost:8080/templates/freemarker

5. 更改默认路径application.properties:

########################################################
###FREEMARKER (FreeMarkerAutoConfiguration)
###src/main/resources/templates/helloFtl.ftl 不可改
########################################################
#spring.freemarker.allow-request-override=false
#spring.freemarker.cache=false
#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.request-context-attribute=
#spring.freemarker.settings.*=
#spring.freemarker.suffix=.ftl
#spring.freemarker.template-loader-path=classpath:/tem/ #comma-separated list
#spring.freemarker.view-names= # whitelist of view names that can be resolved

6. 存在的问题:

网上有资料说freemarker的访问路径是可以更改的,实际经过测试是不能更改的。

配置了spring.freemarker.prefix=classpath:/tem/ 就会报错。

springboot中整合jsp

1.创建maven web project,项目结构如图所示:

2. pom.xml:

<!-- servlet 依赖. -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- JSTL-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

3.application.properties:

#定义返回jsp
# 返回jsp前缀
spring.mvc.view.prefix=/WEB-INF/jsp/
# 返回jsp后缀
spring.mvc.view.suffix=.jsp
#springboot默认端口号8080,更改:
#server.port=8081
#springboot默认访问地址是:http://ip:port/spring_boot,更改:
#server.context-path=/springboot
#server.address= # bind to a specific NIC
#server.session-timeout= # session timeout in seconds
#the context path, defaults to '/'
#server.servlet-path= # the servlet path, defaults to '/'

4.Controller:

@Controller
public class HelloController {
    @RequestMapping("hello")
    public String hello(Map<String,Object> map){
        map.put("name","Demi");
        return "index";
    }
}

5. 项目结构:

6. 打开浏览器,输入http://localhost:8080/hello

访问成功。

源码:

github

SpringBoot使用thymleaf和freemarker:

https://github.com/southwind9801/springboot_01.git

SpringBoot整合JSP:

https://github.com/southwind9801/springboot_jsp.git

原文发布于微信公众号 - Java大联盟(javaunion)

原文发表时间:2018-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一枝花算不算浪漫

[Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.

38611
来自专栏yukong的小专栏

【SpringBoot系列02】SpringBoot之使用Thymeleaf视图模板前言一、目标二、实现三、总结

Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定...

972
来自专栏battcn

一起来学Spring Cloud(F版) | 第一篇:认识Eureka

学过 Dubbo 的一定不会陌生 ZooKeeper ,那么学 SpringCloud 的就不能陌生 Eureka。它是 Netflix 开源的一款基于REST...

1723
来自专栏Alice

iOS .pch文件的使用

什么是.pch文件预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里。这些预先编译好的代码可以是任何的C/C+...

2677
来自专栏一“技”之长

使用Jenkins配置iOS自动化构建工具 原

      关于iOS自动化构建其实并不复杂,通过一些简单的Git与Xcode指令,加上UI,我们自己也可以动手编写一款自动化构建工具。这在之前的博客中也有涉及...

781
来自专栏CodeSheep的技术分享

Spring Boot日志框架实践

2157
来自专栏LeoXu的博客

Tapestry 教程(三)创建应用程序的骨架

首先创建一个空的应用程序。Tapestry提供了一个Maven原型(archetype,一种项目模板)来简化操作。

632
来自专栏乐沙弥的世界

CentOS 7下配置本地yum源及yum客户端

Linux下对于软件包的管理使用rpm管理方式。直接使用rpm包管理工具来进行rpm包的安装,升级,卸载时,对于最让人头疼的莫过与包之间的依赖关系。yum作为一...

1964
来自专栏晓晨的专栏

Jenkins配置Gogs webhook插件

4712
来自专栏jiajia_deng

RESTful API 调试工具 insomnia

1575

扫码关注云+社区