public class UserDirective implements TemplateDirectiveModel { public static final String ID = "id"; @Autowired protected AdminUserService adminUserService; @Override public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { if (loopVars.length < 1) { throw new TemplateModelException("Loop variable is required."); } if (body == null) { throw new RuntimeException("missing body"); } Long id = Freemarkers.getLong(params,ID); AdminUser adminUser = null; if(id != null){ adminUser = adminUserService.findUniqueBy("id",id); } loopVars[0] = env.getObjectWrapper().wrap(adminUser); body.render(env.getOut()); } }
<bean id="User" class="com.sr.fore.manage.web.core.directive.UserDirective"/>
<property name="freemarkerSettings"> <props> <prop key="tag_syntax">square_bracket</prop> <prop key="template_update_delay">2</prop> <prop key="defaultEncoding">UTF-8</prop> <prop key="url_escaping_charset">UTF-8</prop> <prop key="localized_lookup">false</prop> <prop key="locale">zh_CN</prop> <prop key="boolean_format">true,false</prop> <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> <prop key="date_format">yyyy-MM-dd</prop> <prop key="time_format">HH:mm:ss</prop> <prop key="number_format">0.###</prop> <prop key="whitespace_stripping">true</prop> <prop key="auto_import">/spring.ftl as s</prop> </props> </property>
FreeMarkerConfigurationFactory setFreemarkerVariables(Map<String, Object> variables)
[#escape x as (x)!?html] <!DOCTYPE html> <html> <head> <title></title> </head> <body> [@User id = "1";user] <table> <thead> ${user.userName} </thead> </table> [/@User] </body> </html> [/#escape]
freemarkerVariables 是一个map对象,键对应标签名称,值对应xxxDirective
相关推荐
自定义标签是Freemarker的一个重要特性,它允许开发者扩展模板语言的功能,以满足特定项目的需求。本篇文章将对Freemarker自定义标签进行深入的总结。 1. **自定义标签基础** 自定义标签在Freemarker中被称为`...
3. 使用自定义标签:在模板文件中,你可以像使用内置标签一样使用你的自定义标签。例如,如果你注册了一个名为`myCustomTag`的自定义指令,你可以在模板中这样使用:`...
自定义标签是Freemarker的一个强大特性,它可以帮助我们更好地组织视图层代码,提高代码复用性,使得模板更加模块化。下面将详细介绍Spring MVC与Freemarker自定义标签的使用。 首先,我们需要了解Freemarker的基础...
为了使自定义标签在JSP中可用,你需要在`WEB-INF`目录下创建一个`tld`文件夹,并创建一个`.tld`文件(例如`my-tags-tld.tld`)。`tld`文件定义了你的自定义标签库,包括描述、显示名称、版本等信息。尽管在示例中...
### freemarker 标签详解:提升Web开发效率与灵活性 #### 1. Include标签:高效复用模板 **功能概述:** `Include` 标签是Freemarker中一个非常实用的功能,它允许开发者在多个页面间共享相同的布局或组件,如页头...
- **自定义标签**:当需要扩展功能时,可以通过自定义标签实现。这部分可能会涉及到FreeMarker的API和标签库的创建。 4. **参考手册** - **函数和方法**:FreeMarker提供了丰富的内置函数,如`html`用于转义HTML...
### Freemark标签运用知识点 #### 一、Freemarker简介 Freemarker 是一款功能强大的模板引擎,由 Apache 软件基金会所维护的一个开放源码项目。它主要用于生成动态 HTML 页面,但也支持生成 XML、Java 源代码等...
2. 自定义标签库:支持自定义标签,可以扩展模板语言的功能。 3. 国际化支持:通过不同的消息资源文件实现多语言输出。 4. 缓存机制:提高性能,减少对服务器资源的消耗。 5. 高级控制结构:包括条件判断、循环、...
通常,Word模板会遵循Open XML标准,这样FreeMarker就能识别并处理其中的标签。同时,这个描述中还提到了转换为PDF格式,虽然FreeMarker本身不直接支持PDF生成,但可以结合其他库,如Apache POI或iText,先用...
此外,也可以自定义方法,通过`<#function>`标签实现。 5. **模板继承与导入**: 使用`<#include>`标签可以导入其他模板,而`<#macro>`可以定义可重用的模板片段,通过`<#nested>`调用。 6. **运行Test.java**: ...
FreeMarker支持更复杂的功能,如宏、指令、自定义标签等,这使得模板可以处理更复杂的逻辑。同时,Apache POI库提供了丰富的API,用于对Word文档进行更细致的控制,比如插入图片、设置样式等。 总结,使用Java和...
3. **国际化(Internationalization)**: FreeMarker支持多语言,通过`<#t>`或`<#lt>`标签进行日期和时间格式化,`<#trans>`处理翻译。 4. **自定义函数和指令(Custom Tags and Directives)**: 可以通过扩展...
涉及的知识点有:springboot框架原理、freemark模板标签语法、jpa数据库操作及自动建表、统一上传文件实现方法、自定义注解实现统一验证方法、权限拦截器实现权限统一管理、自定义分页插件封装、调用控制台命令对...
标签"freemark官方插件2"再次强调了这是FreeMarker官方提供的插件,并且是系列中的第二个。官方插件通常具有较高的可靠性和与核心库的良好兼容性,开发者可以放心使用,因为它们会得到官方的支持和维护。 在压缩...
format}):可以自定义数字的显示格式,如`mX`(小数部分最小X位)和`MX`(小数部分最大X位)。 4. **FTL指令**:FreeMarker的FTL指令类似于HTML标签,但以`#`开头,用来控制模板的逻辑和流程。例如,`<#if>`、`...
- **FTL标签**:可以使用`<@tag>`形式在模板中调用自定义或框架提供的标签。 - **初始化共享变量**:通常在Web应用启动时设置,用于跨模板共享数据。 - **整合配置**:与WebWork或其他MVC框架整合时,需要配置...
系统实现的功能主要有用户管理、角色管理、权限管理、日志管理、数据库备份等等,涉及的知识点有:springboot框架原理、freemark模板标签语法、jpa数据库操作及自动建表、统一上传文件实现方法、自定义注解实现统一...
FreeMarker模板中主要包含静态数据和FTL标签(FreeMarker Template Language,FreeMarker模板语言),在处理模板时,静态数据原封不动地输出,而FTL标签则根据数据模型中的数据动态生成相应的输出。数据模型是一个...
标题"freemark2.36"指的是FreeMarker的版本号2.3.16,这可能是该软件的一个稳定版本。 FreeMarker的核心功能是将数据模型与HTML或其他格式的模板结合,生成动态内容。它的工作原理是将预先设计好的模板文件(.ftl...