现在我们一起看一下在SpringBoot如何使用freemark模板。

1.在pom.xml文件中引入freemark依赖包

<!-- 引入freeMarker的依赖包. -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-freemarker</artifactId>
		</dependency>

2.在src/main/resource/创建一个templates文件夹,文件名后缀为*.ftl,里面新建一个index.ftl的文件,内容如下

<html>
<head>
<title>Welcome!</title>
</head>
<body>
	<h1>Welcome ${name}!</h1>
</body>
</html>

3.在Controller中写入一个方法

@Controller
public class FreeMarkerController {

	@RequestMapping("index")
	public String index(Map<String,Object> map) {
		//向map总存值,前端页面可以根据键获取值
		map.put("name", "张三");
		//跳转页面
		return "index";
	}
	
}

4.访问页面

运行main方法即可启动我们程序,输入下图地址可以看到以下内容即配置成功。

spring boot 渲染word文档 springboot服务端渲染_html

一个简单的freemark整合就完成了,接下来我们看看怎么传递一个list并且在前端页面中获取数据

1.我们在Controller中造一些数据

//集合数据
	@RequestMapping("list")
	public String list(ModelMap map) {
		map.addAttribute("sex", 1);
		//向集合中存放数据
		List<String> list = new ArrayList<String>();
		list.add("三体");
		list.add("百年孤独");
		list.add("明朝那些事儿");
		//将集合放到域中
		map.addAttribute("list", list);
		//返回list.ftl页面
		return "list";
		
	}

2.前段页面使用我们使用if判断和list做遍历,写法和jstl还是有一些区别的

<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<!-- 判断性别 -->
		<#if sex==1>
			男<br/>
			<#elseif sex==2>
			女<br/>
			<#else>
			其他<br/>
		</#if>
		<!-- 遍历集合 -->
		<#list list as user>
			${user}<br/>
		</#list>
	</body>
</html>

3.访问页面

spring boot 渲染word文档 springboot服务端渲染_html_02

最后我们说一下springboot中使用freemark的一些常用配置,可以在src/main/resources下新建application.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

接下来我们说一下怎么在SpringBoot中使用JSP,但是JSP应该尽量避免使用,原因如下:

1)jsp只能打包为:war格式,不支持jar格式,只能在标准的容器里面跑(tomcat,jetty都可以)

2)内嵌的Jetty目前不支持JSPs

3)Undertow不支持jsps

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

案例:

1)在pom文件中引入jsp依赖

<!-- 引入jsp -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- 引入jstl-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

2)在application.properties文件中配置JSP

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

3)写一个方法跳转页面

@RequestMapping("tojsp")
	public String toJsp() {
		
		return "tojsp";
	}

4)新建一个jsp页面,目录如下图所示

spring boot 渲染word文档 springboot服务端渲染_spring_03

这样我们就可以使用JSP完成我们的视图渲染。

以上就是分享的使用SpringBoot在freemark和JSP渲染视图,希望对各位读者有所帮助。