CN102193955B - 一种生成Facelets页面的方法和装置 - Google Patents

一种生成Facelets页面的方法和装置 Download PDF

Info

Publication number
CN102193955B
CN102193955B CN201010138497.5A CN201010138497A CN102193955B CN 102193955 B CN102193955 B CN 102193955B CN 201010138497 A CN201010138497 A CN 201010138497A CN 102193955 B CN102193955 B CN 102193955B
Authority
CN
China
Prior art keywords
facelets
page
request
template
path
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.)
Active
Application number
CN201010138497.5A
Other languages
English (en)
Other versions
CN102193955A (zh
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.)
Shenzhen Kingdee Tianyanyun Computing Co Ltd
Original Assignee
Shenzhen Kingdee Middleware Co 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 Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201010138497.5A priority Critical patent/CN102193955B/zh
Publication of CN102193955A publication Critical patent/CN102193955A/zh
Application granted granted Critical
Publication of CN102193955B publication Critical patent/CN102193955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种生成Facelets页面的方法和装置,属于计算机领域。所述方法包括:接收对Facelets页面的第一请求,根据所述第一请求携带的路径获取所述路径对应Facelets模板;根据所述Facelets模板、业务条件生成Facelets页面。本发明实施例提供的方案实现了当业务条件不同时可以快速、方便地生成多种不同的Facelets页面,满足了对Facelets页面的多种需求。

Description

一种生成Facelets页面的方法和装置
技术领域
本发明涉及计算机领域,特别涉及一种生成Facelets页面的方法和装置。
背景技术
JSF(Java Server Faces)为新一代的应用技术标准,它吸收了Java ServerPages以及其他的Web应用框架的特性,为Web应用定义了一个事件驱动的、基于组件的模型。Facelets是一个在Apache许可证下的开源Web框架,它为JSF提供了另一种可选的视图处理技术。在JSF Web应用中,通常当程序员编写完Facelets页面的程序后,Facelets页面在前台展示的形式基本上就固定了,但由于权限等其它条件,即使是同一个页面,也需要在不同的场景下有不同的界面。例如:对于同一个页面,管理员和普通用户看到的是不同的页面。
为了实现在不同的场景下,同一Facelets页面能有多种不同的展现方式,现有技术中给出了二种生成Facelets页面的方法:
一、Facelets自带一些逻辑标签,这些逻辑标签影响Facelets为JSF构造构件树的过程,根据逻辑标签条件的不同构造不同的构件树,不同的构件树将会生成多种不同的页面。
二、在业务方法中持有构件树中某些构件的引用,在Facelets为JSF构造构件树后,通过这些引用以编程的方式操作构件树,根据某些业务条件动态修改构件树,最后不同的构件树将会生成多种不同的页面。
发明人在实现本发明的过程中发现,现有技术至少存在以下的缺点和不足:
方法一:由于Facelets自带的一些逻辑标签较少,有一些特殊逻辑,例如:if-else逻辑,因为没有相应的逻辑标签,需多个逻辑标签配合使用以达到效果,而Facelets自带的这些逻辑标签语义晦涩,较难使用,导致这种方式开发效率低。方法二:如果页面内的动态内容较多,以编程的方式来修改构件树的工作量极大,需要写大量的代码;并且由于是用编程语言来操作构件树,最终的页面不直观,当页面较复杂时,一旦出现问题排查起来将极为困难。
发明内容
为了在不同场景下,快速、方便地生成多种不同的Facelets页面,满足对Facelets页面的多种需求,本发明实施例提供了一种生成Facelets页面的方法和装置,所述技术方案如下:
一方面,本发明实施例提供了一种生成Facelets页面的方法,所述方法包括:
接收对Facelets页面的第一请求,根据所述第一请求携带的路径获取所述路径对应Facelets模板,所述第一请求为携带的路径的后缀为*.dfaces的请求;
根据所述Facelets模板、业务条件生成Facelets页面;
获取第二请求,根据第二请求、Facelets页面,进行JSF处理,构造JSF应用所需的构件树;
根据构造的构件树生成代码,并将代码发送至浏览器终端。
在根据所述第一请求携带的路径获取所述路径对应的Facelets模板的步骤之前,包括:
建立所述第一请求携带的路径与所述Facelets模板之间的对应关系。
所述根据所述Facelets模板、业务条件生成Facelets页面,包括:
将所述业务条件直接写入到所述Facelets模板中,生成所述Facelets页面。
所述根据所述Facelets模板、业务条件生成Facelets页面,还包括:
根据所述业务条件设置所对应的参数,将所述参数写入到所述Facelets模板中,生成所述Facelets页面。
再一方面,本发明实施例提供了一种生成Facelets页面的装置,所述装置包括:
接收模块,用于接收对Facelets页面的第一请求,所述第一请求为携带的路径的后缀为*.dfaces的请求;
获取模块,用于根据所述接收模块接收到的所述第一请求中携带的路径获取所述路径对应的Facelets模板;
生成模块,用于根据所述Facelets模板、业务条件生成Facelets页面;
构建模块,用于获取第二请求,根据第二请求、Facelets页面,进行JSF处理,构造JSF应用所需的构件树;
发送模块,用于根据构造的构件树生成代码,并将代码发送至浏览器终端。
所述装置,还包括:
建立模块,用于在根据所述第一请求携带的路径获取所述路径对应的Facelets模板之前,建立所述第一请求携带的路径与所述Facelets模板之间的对应关系。
所述生成模块,包括:
第一生成单元,用于将所述业务条件直接写入到所述Facelets模板中,生成所述Facelets页面。
所述生成模块,还包括:
第二生成单元,用于根据所述业务条件设置所对应的参数,将所述参数写入到所述Facelets模板中,生成所述Facelets页面。
本发明实施例提供的技术方案的有益效果是:
通过接收客户端对Facelets页面的第一请求,根据第一请求中携带的路径获取对应的Facelets模板;根据Facelets模板、不同的业务条件,生成Facelets页面。通过上述方案实现了当业务条件不同时可以快速、方便地生成多种不同的Facelets页面,满足了对Facelets页面的多种需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的生成Facelets页面的方法流程图;
图2是本发明实施例2提供的生成Facelets页面的方法流程图;
图3是本发明实施例3提供的生成Facelets页面的装置示意图;
图4是本发明实施例3提供的生成Facelets页面的装置另一示意图;
图5是本发明实施例3提供的生成Facelets页面的装置另一示意图;
图6是本发明实施例3提供的生成Facelets页面的装置另一示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
为了快速、方便地生成多种不同的Facelets页面,满足对Facelets页面的多种需求,本发明实施例提供了一种生成Facelets页面的方法,参见图1,该方法内容如下:
101:接收对Facelets页面的第一请求,根据第一请求携带的路径获取路径对应Facelets模板;
102:根据Facelets模板、业务条件生成Facelets页面。
进一步地,在根据第一请求携带的路径获取路径对应的facelets模板的步骤之前,包括:
建立第一请求携带的路径与Facelets模板之间的对应关系。
进一步地,根据Facelets模板、业务条件生成Facelets页面,包括:
将业务条件直接写入到Facelets模板中,生成Facelets页面。
进一步地,根据Facelets模板、业务条件生成Facelets页面,还包括:
根据业务条件设置所对应的参数,将参数写入到Facelets模板中,生成Facelets页面。
综上所述,本发明实施例提供了一种生成Facelets页面的方法,通过接收对Facelets页面的第一请求,根据第一请求中携带的路径获取对应的Facelets模板;根据Facelets模板、不同的业务条件,生成Facelets页面。通过上述方法实现了当业务条件不同时可以快速、方便地生成多种不同的Facelets页面,满足了对Facelets页面的多种需求。
为了对上述本发明实施例提供的方法进行详细说明,请参见如下实施例:
实施例2
为了快速、方便地生成多种不同的Facelets页面,提高用户的使用体验,本发明实施例提供了一种生成Facelets页面的方法,参见图2,该方法内容如下:
201:服务器终端获取客户端对动态Facelets页面的第一请求;
例如:客户端在浏览器地址栏中输入网页地址,这时浏览器会向web服务器发送请求该网页地址对应的页面的请求,例如:在浏览器地址栏中输入的网页地址为:http://www.operamasks.org/article/static/ART00098.html,其中,/article/static/ART00098.html为请求的路径。服务器终端获取浏览器发送的对动态Facelets页面的第一请求,即获取路径后缀为*.dfaces的请求,如/company.dfaces、/test2.dfaces、/error/test.dfaces等路径。
202:服务器终端根据第一请求中的路径获取路径所对应的Facelets模板;
具体地,Facelets模板有多个,在配置文件时建立装载的Facelets模板与请求路径之间的对应关系,比如请求路径为/module/list.dfaces,则需要装载的模板为/module/list.dxhtml,如果请求路径为/module/edit.dfaces,则相应地装载的模板为/module/edit.dxhtml,为此用户可以根据请求中的路径获取到路径所对应的Facelets模板。
203:服务器终端根据Facelets模板、业务条件、通过模版引擎生成Facelets页面;
模板系统可以有多个,例如:freemaker、commontemplate、smarttemplate等,每个模板系统只能独立地使用,不能几个模板系统混用,如配置使用A模板系统就不使用B模板系统,配置使用B模板系统不能使用A模板系统。服务器终端将Facelets模板装载进模板系统中,可以直接将业务条件直接写入到Facelets模板中,生成Facelets页面;或根据不同的业务条件将不同的参数写入到Facelets模板的上下文中,Facelets模板的上下文可以作为存放参数的容器,本发明实施例以第二种方式为例进行说明,具体实现时,本发明实施例对此不做限制。例如:一个公司部门的个数可以作为一个业务条件,当部门个数大于5时,设置的参数为:companySize=big,当部门个数小于等于5时,设置的参数为:companySize=small,在模板上下文中可以写出如下的代码:
{if companySize=“big”}
<h:outputLabel value=“这是一个大公司”></h:outputLabel>
{else}
<h:outputLabel value=“这是一个小公司”></h:outputLabel>
{end if}
当部门个数为6时,放入的参数为companySize=big,最终将生成<h:outputLabel value=“这是一个大公司”></h:outputLabel>的Facelets页面。针对模板出错时,模版系统本身会有出错提示,比如在模板文件中引用了一个变量companySize,如下面的代码:
{if companySize=“big”}
<h:outputLabel value=“这是一个大公司”></h:outputLabel>
{else}
<h:outputLabel value=“这是一个小公司”></h:outputLabel>
{end if}
但在实际操作中忘记了根据业务条件将companySize这个参数写入到Facelets模板的上下文中,则根据模板生成Facelets页面时将会报错,会给出如下的出错提示:
companySize未定义位置list.dxhtml,第20行。
上述这句话表明了出错原因是companySize未定义,出错位置位于list.dxhtml这个模板文件中第20行,开发人员看见这种错误提示,就很容易定位错误。通过采用模版系统,使得生成的Facelets页面直观、使用方便,如若出错,可以及时的进行排错,提高了效率。
204:服务器终端获取客户端发送的第二请求,根据第二请求、Facelets页面,进行JSF处理,构造JSF应用所需的构件树;
由于第一请求生成完第一Facelets页面后,无法继续调用JSF,这时,服务器终端就需要客户端发送一第二请求,该第二请求具体为前缀和第一请求相同,后缀为.faces的网页地址,参见步骤201,此时客户端在浏览器地址栏中输入的网页地址为http://www.operamasks.org/article/static/ART00098.faces,当服务器终端获取到该网页地址后,根据Facelets页面进行JSF处理。
具体地,对Facelets页面进行JSF处理包括:通过Facelets框架将标签转化成组件,并拼接成组件树形结构,以构造出JSF应用所需的构件树。例如:将<h:outputLabel这个标签转化成组件,Facelet s框架会将<h:outputLabel>这个标签转化成名为UIOutputLabel的组件,整个Facelets页面中各个标签都被转化为各种各样的组件,然后按最初的父子关系拼接成组件的树型结构。
205:服务器终端根据构造的构件树生成代码,并将代码发送至浏览器终端;
具体地,上述生成的代码可以为html代码、xml代码等其他代码,具体实现时,本发明实施例对此不做限制。
206:浏览器终端接收服务器终端发送的代码,并根据代码生成向用户展示的页面。
上述将代码转化为向用户展示的页面具体包括:首先将代码转化为文字、声音、图片、链接等一系列用户可见的元素,其次将上述元素组合成向用户展示的页面。
综上所述,本发明实施例提供了一种生成Facelets页面的方法,通过接收到客户端对Facelets页面的第一请求,根据第一请求中携带的路径获取对应的Facelets模板;根据Facelets模板、不同的业务条件,通过模板引擎生成Facelets页面,通过Facelets页面,生成展示给用户的页面。通过上述方法实现了当业务条件不同时可以快速、方便地生成多种不同的Facelets页面,满足了对Facelets页面的多种需求;并通过模板系统可以直观的获取到程序中存在的错误,易于排错,节省了时间,提高了开发的效率,满足了实际应用中的需要。
实施例3
本发明实施例提供了一种生成Facelets页面的装置,参见图3,该装置包括:
接收模块301,用于接收对Facelets页面的第一请求;
获取模块302,用于根据接收模块接收到的第一请求中携带的路径获取路径对应的Facelets模板;
生成模块303,用于根据Facelets模板、业务条件生成Facelets页面。
进一步地,参见图4,该装置,还包括:
建立模块304,用于在根据第一请求携带的路径获取路径对应的Facelets模板之前,建立第一请求携带的路径与Facelets模板之间的对应关系。
进一步地,参见图5,生成模块303,包括:
第一生成单元303A,用于将业务条件直接写入到Facelets模板中,生成Facelets页面。
进一步地,参见图6,生成模块303,还包括:
第二生成单元303B,用于根据业务条件设置所对应的参数,将参数写入到Facelets模板中,生成Facelets页面。
综上所述,本发明实施例提供了一种生成Facelets页面的装置,通过接收对Facelets页面的第一请求,根据第一请求中携带的路径获取对应的Facelets模板;根据Facelets模板、不同的业务条件、模板引擎生成Facelets页面。通过上述装置实现了当业务条件不同时可以快速、方便地生成多种不同的Facelets页面,满足了对Facelets页面的多种需求。
本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种生成Facelets页面的方法,其特征在于,所述方法包括: 
接收对Facelets页面的第一请求,根据所述第一请求携带的路径获取所述路径对应Facelets模板,所述第一请求为携带的路径的后缀为*dfaces的请求; 
根据所述Facelets模板、业务条件生成Facelets页面; 
获取第二请求,根据第二请求、Facelets页面,进行JSF处理,构造JSF应用所需的构件树; 
根据构造的构件树生成代码,并将代码发送至浏览器终端;
在根据所述第一请求携带的路径获取所述路径对应的Facelets模板的步骤之前,包括: 
建立所述第一请求携带的路径与所述Facelets模板之间的对应关系。 
2.根据权利要求1所述的方法,其特征在于,所述根据所述Facelets模板、业务条件生成Facelets页面,包括: 
将所述业务条件直接写入到所述Facelets模板中,生成所述Facelets页面。 
3.根据权利要求1所述的方法,其特征在于,所述根据所述Facelets模板、业务条件生成Facelets页面,还包括: 
根据所述业务条件设置所对应的参数,将所述参数写入到所述Facelets模板中,生成所述Facelets页面。 
4.一种生成Facelets页面的装置,其特征在于,所述装置包括: 
接收模块,用于接收对Facelets页面的第一请求,所述第一请求为携带的路径的后缀为*.dfaces的请求; 
获取模块,用于根据所述接收模块接收到的所述第一请求中携带的路径获取所述路径对应的Facelets模板; 
生成模块,用于根据所述Facelets模板、业务条件生成Facelets页面, 
构建模块,用于获取第二请求,根据第二请求、Facelets页面,进行JsF处理,构造JSF应用所需的构件树; 
发送模块,用于根据构造的构件树生成代码,并将代码发送至浏览器终端;
所述装置,还包括: 
建立模块,用于在根据所述第一请求携带的路径获取所述路径对应的Facelets模板之前,建立所述第一请求携带的路径与所述Facelets模板之间的对应关系。 
5.根据权利要求4所述的装置,其特征在于,所述生成模块,包括: 
第一生成单元,用于将所述业务条件直接写入到所述Facelets模板中,生成所述Facelets页面。 
6.根据权利要求4所述的装置,其特征在于,所述生成模块,还包括: 
第二生成单元,用于根据所述业务条件设置所对应的参数,将所述参数写入到所述Facelets模板中,生成所述Facelets页面。 
CN201010138497.5A 2010-03-16 2010-03-16 一种生成Facelets页面的方法和装置 Active CN102193955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010138497.5A CN102193955B (zh) 2010-03-16 2010-03-16 一种生成Facelets页面的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010138497.5A CN102193955B (zh) 2010-03-16 2010-03-16 一种生成Facelets页面的方法和装置

Publications (2)

Publication Number Publication Date
CN102193955A CN102193955A (zh) 2011-09-21
CN102193955B true CN102193955B (zh) 2014-04-23

Family

ID=44602034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010138497.5A Active CN102193955B (zh) 2010-03-16 2010-03-16 一种生成Facelets页面的方法和装置

Country Status (1)

Country Link
CN (1) CN102193955B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970534A (zh) * 2014-04-15 2014-08-06 百度在线网络技术(北京)有限公司 一种提供移动应用中的渲染页面的方法与设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082919A (zh) * 2006-06-01 2007-12-05 英业达股份有限公司 网页页面处理系统及方法
CN101354725A (zh) * 2008-09-08 2009-01-28 中兴通讯股份有限公司 一种构建解析wap页面的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082919A (zh) * 2006-06-01 2007-12-05 英业达股份有限公司 网页页面处理系统及方法
CN101354725A (zh) * 2008-09-08 2009-01-28 中兴通讯股份有限公司 一种构建解析wap页面的方法及装置

Also Published As

Publication number Publication date
CN102193955A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
CN108279932B (zh) 一种移动终端动态配置用户界面方法和装置
US10705942B1 (en) Simulated testing of API
US7992127B2 (en) Method and system of encapsulating web site transactions for computer-aided generation of web services
US8966446B1 (en) Systems and methods of live experimentation on content provided by a web site
US20070157096A1 (en) GUI modeling of web services
US20190340230A1 (en) System and method for generating websites from predefined templates
WO2009148481A1 (en) Systems and methods for visual test authoring and automation
CN113485927B (zh) 一种测试数据生成方法、装置、设备及存储介质
US20170249170A1 (en) Home system establishing method
CN113849156A (zh) OpenHarmony操作系统应用的无代码智能开发系统及其使用方法
CN113791765A (zh) 云服务的资源编排方法、装置、设备及存储介质
Imran et al. Aggregated provenance and its implications in clouds
CN100412794C (zh) 在入口视图中独立地提交表单的系统和方法
CN103473106A (zh) 一种页面生成的方法及系统
US20220035606A1 (en) System and method for tailoring a customizer for integration process modeling visual element to a domain specific language for business integrations
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
CN111399818B (zh) 推荐引擎设计方法、装置、服务器及存储介质
CN102193955B (zh) 一种生成Facelets页面的方法和装置
US11182272B2 (en) Application state monitoring
CN115981650A (zh) 一种网站搭建方法及装置、电子设备、存储介质
CN114047999A (zh) 页面配置的方法、系统、电子设备和存储介质
CN114679491A (zh) 微前端服务应用方法、装置、存储介质及电子设备
US11748560B2 (en) Converting between tabular and structured data formats
Mearns Expert GeoServer: Build and secure advanced interfaces and interactive maps
US11599398B2 (en) Method for combining unified matters in personal workspace and system using the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Patentee before: Shenzhen Kingdee Middleware Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co., Ltd.

Address before: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee before: Shenzhen Kingdee middleware Limited by Share Ltd.