SpringBoot(二)之视图渲染

喜欢有帮助记得点赞哦,加关注不迷路

在SpringBoot官方文档中不建议我们使用JSP这样的技术,取而代之的是freemark、velocity这样的模板引擎。所谓的模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档,模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易,不依赖servlet、网络或者web环境。

现在我们一起看一下在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方法即可启动我们程序,输入下图地址可以看到以下内容即配置成功。

一个简单的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.访问页面

最后我们说一下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页面,目录如下图所示

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

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

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石添的编程哲学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值