CN109375911A - 一种基于SpringMVC渲染FreeMarker模板的方法 - Google Patents
一种基于SpringMVC渲染FreeMarker模板的方法 Download PDFInfo
- Publication number
- CN109375911A CN109375911A CN201811018979.XA CN201811018979A CN109375911A CN 109375911 A CN109375911 A CN 109375911A CN 201811018979 A CN201811018979 A CN 201811018979A CN 109375911 A CN109375911 A CN 109375911A
- Authority
- CN
- China
- Prior art keywords
- template
- view
- freemarker
- ftl
- prefix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及JAVA WEB软件开发技术领域,具体涉及一种基于SpringMVC渲染FreeMarker模板的方法,包括如下步骤:实现FreeMarker的模板加载器接口,重写查找模板方法,为多种来源的ftl模板设置相应的前缀进行区分,在查找模板的方法中根据模板前缀返回相应来源的ftl模板;继承Spring的FreeMarker模板视图对象,重写渲染视图方法,在渲染视图的方法中,判断视图的url是否为空字符串,如果不为空字符串,则渲染默认模板加载器加载的项目工程中特定目录下的ftl模板,如果为空字符串,则渲染扩展模板加载器中根据ftl模板前缀和模板名称加载的相应来源的ftl模板。本发明通过扩展SpringMVC框架渲染FreeMarker模板的方法,实现了同时支持渲染多种来源的FreeMarker模板的方法。
Description
技术领域
本发明涉及JAVA WEB软件开发技术领域,具体涉及一种基于SpringMVC渲染FreeMarker模板的方法。
背景技术
FreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
模板编写为FreeMarkerTemplateLanguage(FTL)。它是简单的,专用的语言,不是像PHP那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。FreeMarker常被用来在MVC模式的Web开发框架中生成HTML页面,在常见JavaWeb开发框架SpringMVC中,Freemarker模板作为视图层来进行渲染和展示,ftl模板都是存放在项目工程中的特定目录下,对于有些特殊需求,需要从数据库中加载ftl模板或者从其他来源加载ftl模板并进行渲染,所以需要能够实现SpringMVC中同时支持渲染多种来源的ftl模板。SpringMVC框架中只对存放在项目工程中特定目录下的ftl模板进行渲染,不能同时支持渲染多种来源的ftl模板。
发明内容
本发明的目的就是提出了一种通过在SpringMVC原有基础上进行扩展,实现同时支持渲染多种来源的ftl模板的方法。
为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现的:
一种基于SpringMVC渲染FreeMarker模板的方法,包括如下步骤:
步骤1、实现FreeMarker的模板加载器接口,重写查找模板方法,为多种来源的ftl模板设置相应的前缀进行区分,在查找模板的方法中根据模板前缀返回相应来源的ftl模板;
步骤2、继承Spring的FreeMarker模板视图对象,重写渲染视图方法,在渲染视图的方法中,判断视图的url是否为空字符串,如果不为空字符串,则渲染默认模板加载器加载的项目工程中特定目录下的ftl模板,如果为空字符串,则渲染扩展模板加载器中根据ftl模板前缀和模板名称加载的相应来源的ftl模板;
步骤3、在spring配置文件中,在FreeMarker视图解析器中配置扩展的视图对象View,配置扩展的FreeMarker模板加载器;
步骤4、在后端控制器中的处理方法中设置视图路径为空字符串,并通过在视图模型对象中添加模型数据,键为任意标识,值为“模板前缀+模板名称”。
本发明的有益效果:通过扩展SpringMVC框架渲染FreeMarker模板的方法,实现了同时支持渲染多种来源的FreeMarker模板的方法。
附图说明
为了更清楚地说明本发明的技术方案,下面将对技术方案描述所需要使用的附图作简单地介绍。
图1为本发明的实施例的方法流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白理解,下面将结合本发明的技术原理附图,对本发明的技术方案进行清楚、完整地描述,基于本发明中的技术方案,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它技术方案和实例,都属于本发明保护的范围。
如图1所示的一种基于SpringMVC渲染FreeMarker模板的方法,包括如下步骤:
步骤1、实现FreeMarker的模板加载器接口,重写查找模板方法,为多种来源的ftl模板设置相应的前缀进行区分,在查找模板的方法中根据模板前缀返回相应来源的ftl模板;
步骤2、继承Spring的FreeMarker模板视图对象,重写渲染视图的方法,在渲染视图的方法中,判断视图的url是否为空字符串,注:在后端控制器的处理方法中设置,不能为null,否则框架报错,如果不为空字符串,则渲染默认模板加载器加载的项目工程中特定目录下的ftl模板,如果为空字符串,则渲染扩展模板加载器中根据ftl模板前缀和模板名称加载的相应来源的ftl模板;
步骤3、在spring配置文件中,在FreeMarker视图解析器中配置扩展的视图对象View;配置扩展的FreeMarker模板加载器;
步骤4、在后端控制器中的处理方法中设置视图路径为空字符串,并通过在视图模型对象中添加模型数据,键为任意标识注,:与扩展的FreeMarker视图的渲染方法中一致,值为“模板前缀+模板名称”注:在扩展的模板加载器中根据模板前缀,封装相应的模板来源。
以上公开的本发明实施例只是用于帮助阐述本发明。并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书具体描述实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (1)
1.一种基于SpringMVC渲染FreeMarker模板的方法,其特征在于,包括如下步骤:
步骤1、实现FreeMarker的模板加载器接口,重写查找模板,为多种来源的ftl模板设置相应的前缀进行区分,在查找模板的方法中根据模板前缀返回相应来源的ftl模板;
步骤2、继承Spring的FreeMarker模板视图对象,重写渲染视图,在渲染视图的方法中,判断视图的url是否为空字符串,如果不为空字符串,则渲染默认模板加载器加载的项目工程中特定目录下的ftl模板,如果为空字符串,则渲染扩展模板加载器中根据ftl模板前缀和模板名称加载的相应来源的ftl模板;
步骤3、在spring配置文件中,在FreeMarker视图解析器中配置扩展的视图对象View,配置扩展的FreeMarker模板加载器;
步骤4、在后端控制器中的处理方法中设置视图路径为空字符串,并通过在视图模型对象中添加模型数据,键为任意标识,值为“模板前缀+模板名称”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018979.XA CN109375911A (zh) | 2018-09-03 | 2018-09-03 | 一种基于SpringMVC渲染FreeMarker模板的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018979.XA CN109375911A (zh) | 2018-09-03 | 2018-09-03 | 一种基于SpringMVC渲染FreeMarker模板的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109375911A true CN109375911A (zh) | 2019-02-22 |
Family
ID=65404190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811018979.XA Pending CN109375911A (zh) | 2018-09-03 | 2018-09-03 | 一种基于SpringMVC渲染FreeMarker模板的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109375911A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115586896A (zh) * | 2022-09-29 | 2023-01-10 | 通号智慧城市研究设计院有限公司 | 基于模板引擎的页面项目开发方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
US20140282379A1 (en) * | 2011-05-31 | 2014-09-18 | Accenture Global Services Limited | Computer-implemented method, system and computer program product for displaying a user interface component |
CN104317591A (zh) * | 2014-10-23 | 2015-01-28 | 西安未来国际信息股份有限公司 | 一种基于OSGi的web界面框架系统及web业务处理方法 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
-
2018
- 2018-09-03 CN CN201811018979.XA patent/CN109375911A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282379A1 (en) * | 2011-05-31 | 2014-09-18 | Accenture Global Services Limited | Computer-implemented method, system and computer program product for displaying a user interface component |
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN104317591A (zh) * | 2014-10-23 | 2015-01-28 | 西安未来国际信息股份有限公司 | 一种基于OSGi的web界面框架系统及web业务处理方法 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
Non-Patent Citations (3)
Title |
---|
THE FREEMARKER PROJECT: "模板加载 - FreeMarker 中文官方参考手册", 《HTTP://FREEMARKER.FOOFUN.CN/PGUI_CONFIG_TEMPLATELOADING.HTML》 * |
时月梅: "基于Spring MVC、MyBatis实现数据分页显示处理", 《信息与电脑(理论版)》 * |
自行车上的程序员: "springMVC加载远程freemarker模板文件", 《HTTPS://WWW.CNBLOGS.COM/YANGZHILONG/P/5474808.HTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115586896A (zh) * | 2022-09-29 | 2023-01-10 | 通号智慧城市研究设计院有限公司 | 基于模板引擎的页面项目开发方法、设备及存储介质 |
CN115586896B (zh) * | 2022-09-29 | 2023-08-04 | 通号智慧城市研究设计院有限公司 | 基于模板引擎的页面项目开发方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631597B (zh) | 基于xml的web表单引擎装置及方法 | |
CN103383645B (zh) | 代码生成方法及系统 | |
CN103500087B (zh) | 一种基于maven插件和freemarker模版的代码生成方法及装置 | |
CN102646038B (zh) | 控件内容展现方法、控件内容展现装置以及移动终端 | |
US20160299745A1 (en) | Development method for web development system, and web development system | |
CN103412868B (zh) | 文书生成方法及装置 | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
CN104424338A (zh) | web系统的自动生成装置和自动生成方法 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
US20130332449A1 (en) | Generating data processing code from a directed acyclic graph | |
JP2012523644A (ja) | Cpiシミュレーション・システムのフローシートを有するスプレッドシート・ユーザ・インターフェースの利用 | |
CN101609398B (zh) | 网络应用的开发系统和方法 | |
CN104965714A (zh) | 应用软件的代码生成方法和系统 | |
CN103853543A (zh) | 一种应用于企业信息系统开发过程中快速构建表单的方法 | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN102741811A (zh) | 改善基于模板的JavaScript小部件的性能 | |
CN107122173A (zh) | 一种适配activiti、可拖拽的表单生成方法 | |
CN104731588B (zh) | 页面布局文件生成方法和页面布局文件生成装置 | |
CN102043622A (zh) | 一种电子控制器基础软件通用配置器 | |
CN105278946A (zh) | 一种RESTful API可视化方法 | |
CN102629204A (zh) | 网页源代码生成方法及装置 | |
CN105893063A (zh) | 一种基于xml格式配置文件的应用程序界面及其构建方法 | |
CN102426612A (zh) | 条件对象查询方法及系统 | |
CN104850498A (zh) | 一种填充信息测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190222 |