中国平面设计和网站建设,室外绿化工程施工方案久久建筑网,易搜搜索引擎,上饶做网站建设什么是freemarker?
FreeMarker是一种模板引擎#xff0c;它可以用于生成各种类型的文档#xff0c;比如HTML、XML、PDF、Word等。它可以通过简单的模板语法和数据模型来生成文档内容。与传统的JSP相比#xff0c;FreeMarker的语法更加简洁和易读#xff0c;并且可以很好地…什么是freemarker?
FreeMarker是一种模板引擎它可以用于生成各种类型的文档比如HTML、XML、PDF、Word等。它可以通过简单的模板语法和数据模型来生成文档内容。与传统的JSP相比FreeMarker的语法更加简洁和易读并且可以很好地与前端框架结合使用。同时FreeMarker还提供了一些高级功能如国际化支持、条件语句、循环语句等使得模板的编写更加方便和灵活。FreeMarker是一个开源的项目使用Java语言编写可以在不同的平台上运行。
springbootfreemarker配置文件
spring:freemarker:#freemarker和get一样会有缓存如果为false那么就是清楚缓存。cache: false# 页面编码charset: UTF-8# 文档类型content-type: text/html;charsetUTF-8enabled: true# 模板后缀suffix: .ftl# 模板加载路径template-loader-path: classpath:/views/
# 配置模板里从哪里可以直接取request的属性 request是别名 request-context-attribute: requestrequest-context-attribute: request
# 配置将request和session中的键值添加到AbstractTemplateView类的renderMergedOutputModel方法中的model这个Map参数中 expose-request-attributes: trueexpose-spring-macro-helpers: true# 配置模板里是否可以直接取session的属性 true 是允许expose-session-attributes: truesettings:tag_syntax: auto_detect # 配置标签语法为自动页面可以将 改为#[]为了区别 html 标签template_update_delay: 0 # 模板更新时间单位秒default_encoding: UTF-8 # 默认编码字符集output_encoding: UTF-8 # 模板输出编码字符集locale: zh_CN # 本地化配置date_format: yyyy-MM-dd # 日期格式化time_format: HH:mm:ss # 时间格式化 datetime_format: yyyy-MM-dd HH:mm:ss # 日期时间格式化 number_format: #.## # 数字格式化boolean_format: true,false # boolean格式化 # ignore,debug,html_debug,rethrow# 1.TemplateExceptionHandler.IGNORE_HANDLER简单地压制所有异常# 它对处理异常没有任何作用也不会重新抛出异常页面可以正常渲染后台抛异常# 2.TemplateExceptionHandler.DEBUG_HANDLER打印堆栈信息和重新抛出异常。这是默认的异常控制器# 3.TemplateExceptionHandler.HTML_DEBUG_HANDLER和DEBUG_HANDLER相同 # 但是可以格式化堆栈跟踪信息HTML页面建议使用它而不是DEBUG_HANDLER# 4.TemplateExceptionHandler.RETHROW_HANDLER简单重新抛出所有异常而不会做其他的 事情# 5.使用自定义异常类实现TemplateExceptionHandler重写handleTemplateException方 法template_exception_handler: html_debug这里使用了freemarker模板引擎他会自动配置视图解析器 视图解析器的prefix就是template-loader-path他的suffix就是suffix。因此我们在Controller页面中返回String的时候视图解析器会自动配置。
Controller
public class ControllerTest {RequestMapping(/{page})public String testDo(PathVariable String page) throws IOException {System.out.println(page);return page;}
}返回的实际上是 /views/{page}.ftl
#assign ctxrequest.contextPath/
这是FreeMarker模板语法的一个示例代码其中assign指令可以用来创建模板变量ctx是变量名request.contextPath是变量的值。request是FreeMarker默认提供的一个全局变量对象可以用来获取HTTP请求相关的信息。在这段示例代码中我们使用request对象的contextPath属性来获取请求的上下文路径并将其赋值给ctx变量。通过这种方式我们可以在模板中使用ctx变量来引用上下文路径而不必在每个需要使用上下文路径的地方都重复编写该代码。 不是基于 因此他需要
jsp中base标签 他走的是全路径。协议://服务器名:服务器端口号/上下文路径/
%
String basePathrequest.getScheme()://request.getServerName():request.getServerPort()request.getContextPath()/;
%
html
headbase href%basePath%但这个base是基于的意思已知根路径在webapps下那么这个base就是截止到webapps因此在webapps下的路径照样还是写
#include “文件名.ftl”/
这个和sql的 include refidBase_Column_List /效果一样只不过这个是sql标题的是文件而已也就是公用模板的提取。