CN109375911A - 一种基于SpringMVC渲染FreeMarker模板的方法 - Google Patents

一种基于SpringMVC渲染FreeMarker模板的方法 Download PDF

Info

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
Application number
CN201811018979.XA
Other languages
English (en)
Inventor
朱静轩
王振
章文友
孟彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Network Information Security Ltd By Share Ltd
Original Assignee
China Network Information Security Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Network Information Security Ltd By Share Ltd filed Critical China Network Information Security Ltd By Share Ltd
Priority to CN201811018979.XA priority Critical patent/CN109375911A/zh
Publication of CN109375911A publication Critical patent/CN109375911A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation 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

一种基于SpringMVC渲染FreeMarker模板的方法
技术领域
本发明涉及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、在后端控制器中的处理方法中设置视图路径为空字符串,并通过在视图模型对象中添加模型数据,键为任意标识,值为“模板前缀+模板名称”。
CN201811018979.XA 2018-09-03 2018-09-03 一种基于SpringMVC渲染FreeMarker模板的方法 Pending CN109375911A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586896A (zh) * 2022-09-29 2023-01-10 通号智慧城市研究设计院有限公司 基于模板引擎的页面项目开发方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
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框架整合的代码生成器

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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