SpringBoot集成beetl模板快速入门
SpringBoot集成beetl模板快速入门
首次探索
beetl官方网址:http://ibeetl.com/
创建SpringBoot工程(idea)
新建工程
选择创建Spring工程
书写包名和项目名称等
选择集成web依赖
确认项目保存路径信息
修改maven本地仓库位置
maven本地仓库位置,默认在C盘的:
"C:\Users\用户名 \ .m2\repository"
可以复制maven工程下的setting.xml修改其文件,详情见该博客
http://blog.csdn.net/pyfysf/article/details/78623033
(该步骤可以忽略)
配置SpringBoot工程热部署
配置SpringBoot工程热部署
可以参考该博客:
http:// blog.csdn.net/pyfysf/article/details/78791292
(该步骤也可忽略.)
注:如果没有此步骤,每次修改工程文件都必须重启服务器
添加beetl依赖
关于beetl的介绍和说明请查看官方网站具体介绍
添加maven依赖
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.1.22.RELEASE</version>
</dependency>
添加beetl配置
在项目的运行入口文件SpringbootbeetlApplication.java中加入下面代码
@Bean(initMethod = "init", name = "beetlConfig")
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
ResourcePatternResolver patternResolver = ResourcePatternUtils.getResourcePatternResolver(new DefaultResourceLoader());
try {
// WebAppResourceLoader 配置root路径是关键
WebAppResourceLoader webAppResourceLoader =
new WebAppResourceLoader(patternResolver.getResource("classpath:/").getFile().getPath());
beetlGroupUtilConfiguration.setResourceLoader(webAppResourceLoader);
} catch (IOException e) {
e.printStackTrace();
}
//读取配置文件信息
return beetlGroupUtilConfiguration;
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setPrefix("WEB-INF/views/");
beetlSpringViewResolver.setSuffix(".html");
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
return beetlSpringViewResolver;
}
解释:
设置beetl的根路径
WebAppResourceLoader webAppResourceLoader =
new WebAppResourceLoader(patternResolver.getResource("classpath:/").getFile().getPath());
注:beetl的默认根路径为resources/templates文件夹。如丄行代码设置resources文件夹即为根路径
beetlSpringViewResolver.setPrefix("WEB-INF/views/");
注:如丄行代码设置即为beetl的路径为resources文件夹下的WEB-INF/views/
设置后缀
beetlSpringViewResolver.setSuffix(".html");
注:beetl的默认后缀为btl。如丄行代码设置即为beetl的后缀设置为html
- 所以假设项目Controller代码中 return "add";
- 那么跳转的页面即为resources/WEB-INF/views/add.html
beetl的其他常用配置
在resources文件夹下创建beetl.properties,可以在里面修改一些默认配置,比如把默认定界符号<%%>修改为@
DELIMITER_STATEMENT_START=@
DELIMITER_STATEMENT_END=
加入这么两行代码就可以了
默认定界符号使用:
<%
var a = 2;
var b = 3;
var result = a+b;
%>
hello 2+3=${result}
修改定界符号为@后使用:
@var a = 2;
@var b = 3;
@var result = a+b;
hello 2+3=${result}
其他配置详见beetl官方网站
创建Controller进行测试
浏览器中输入
http://localhost:8080/home/add
即可进行测试
测试获取contextPath和后台返回的数据
在springboot的主配置文件application.yml中
进行如下配置
server:
context-path: /springbootbeetl
修改Controller代码为:
@Controller
@RequestMapping("/home")
public class HelloBeetlController {
private static Logger logger = LoggerFactory.getLogger(HelloBeetlController.class);
/**
* 测试beetl模板
*
* @return
*/
@RequestMapping("/add")
public ModelAndView home() {
ModelAndView modelAndView = new ModelAndView();
logger.info("add request");
modelAndView.addObject("email", "apk2sf@163.com");
modelAndView.setViewName("add");
return modelAndView;
}
}
修改add.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>add</title>
</head>
<body>
add Html web info
<hr>
获取项目的context-path-->${ctxPath}
<hr>
获取后台返回的数据--->${email}
</body>
</html>
- 项目结构
- 浏览器访问测试
http://localhost:8080/springbootbeetl/home/add
- 测试结果
SpringBoot集成beetl模板快速入门的更多相关文章
- Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 【持续集成与交付快速入门必备】
Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 [持续集成与交付快速入门必备]
- Beetl模板引擎入门教程
最近项目中有个邮件发送的需求,不过要求发送的HTML格式的邮件.由于Beetl对java语言的良好支持和很好的性能,我们决定使用Beetl作为我们的模板引擎. Beetl官网已经有了很详细的教程,所以 ...
- 九、SpringBoot集成Thymeleaf模板引擎
Thymeleaf咋读!??? 呵呵,是不是一脸懵逼...哥用我的大学四级英文知识告诉你吧:[θaimlif]. 啥玩意?不会音标?...那你就这样叫它吧:“赛母李府”,大部分中国人是听不出破绽的.. ...
- SpringBoot(一、快速入门)
1.SpringBoot简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- Vue.js——60分钟webpack项目模板快速入门
概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...
- Vue.js——60分钟browserify项目模板快速入门
概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...
- SpringBoot集成Thymeleaf模板引擎
简单介绍 目前在JavaEE领域有几中比较常用的模板引擎,分别是Jsp.Velocity.Freemarker.Thymeleaf,对Freemark语法不是特别熟悉,不过对于前端页面渲染效率来说,j ...
- Vue.js——60分钟webpack项目模板快速入门
概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...
- Vue.js——60分钟browserify项目模板快速入门
概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...
随机推荐
- [Game-0001] 新手引导逻辑梳理
欢迎任何形式的转载,但请务必注明出处:http://www.cnblogs.com/liangjingyang 欢迎任何形式的转载,但请务必注明出处:http://www.cnblogs.com/li ...
- Delphi url 编码及转码及特殊字符串替换--百度和腾讯用的就是这个
先介绍一下,Delphi中处理Google的URL编码解码,其中就会明白URL编码转换的方法的 从delphi的角度看Google(谷歌)URL编码解码方式 在网上搜索了一下,似乎没有什么关于goog ...
- How Qt Signals and Slots Work(感觉是通过Meta根据名字来调用)
Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we wi ...
- 《C++ Primer》读书笔记 第二章
1.在算数表达式中最好不要使用char或bool,只有在存放字符或布尔值时才使用他们,因为char在有些机器上是有符号的,在一些机器上是无符号的,所以特别容易出问题,如果只表示一个不大的整数,那么明确 ...
- java关键字-final
final特点: 1:这个关键字是一个修饰符,可以修饰类,方法,变量. 2:被final修饰的类是一个最终类,不可以被继承. 3:被final修饰的方法是一个最终方法,不可以被覆盖. 4:被final ...
- Docker环境下的前后端分离项目部署与运维(十一)Docker Swarm技术
Docker Swarm技术 docker swarm技术(之前的docker集群都是在 一个虚拟主机上的,但是如果这个主机挂掉了over了,docker技术就是多个虚拟主机形成一个集群) Swarm ...
- 01 Javascript简介(了解)
Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布 ...
- 分析RESTful API安全性及如何采取保护措施
本文中讨论了API安全性和采用安全措施的重要性,如身份验证,API密钥,访问控制和输入验证. API设计的第一步是撰写接口文档 根据TechTarget(海外IT专业媒体)的定义,RESTful AP ...
- 精通并发与 Netty (一)如何使用
精通并发与 Netty Netty 是一个异步的,事件驱动的网络通信框架,用于高性能的基于协议的客户端和服务端的开发. 异步指的是会立即返回,并不知道到底发送过去没有,成功没有,一般都会使用监听器来监 ...
- 带你手写基于 Spring 的可插拔式 RPC 框架(一)介绍
概述 首先这篇文章是要带大家来实现一个框架,听到框架大家可能会觉得非常高大上,其实这和我们平时写业务员代码没什么区别,但是框架是要给别人使用的,所以我们要换位思考,怎么才能让别人用着舒服,怎么样才能让 ...