封装JSP页面下标签组件的方法和系统技术方案

技术编号:9545279 阅读:87 留言:0更新日期:2014-01-08 21:34
本发明专利技术公开了一种封装JSP页面下标签组件的方法和系统,涉及基于BS结构开发的WEB应用系统中组件的封装,在JSP页面中将最外层的标签定义为根标签,其它层的标签定义为非根标签,根标签和非根标签构建流程中均要创建标签输出管理器;所述的标签输出管理器控制标签的输出顺序和输出数据,输出数据包括文本对象和子标签对象。本发明专利技术的有益效果如下:本发明专利技术中父标签能够容易,方便的嵌入多个子标签,在子标签之间有父标签的输出文本,并且子标签的输出不用依赖父标签的数据。

【技术实现步骤摘要】
封装JSP页面下标签组件的方法和系统
本专利技术涉及基于BS结构开发的WEB应用系统中组件的封装,具体涉及一种封装JSP页面下标签组件的方法和系统。
技术介绍
缩略语、英文和关键术语定义列表:BS:全称为BrowserServer,即浏览器服务器,目前对于客户端服务端应用程序分为两种,一种是CS(ClientServer,客户机服务器),一种是BS;标签组件:在BS应用系统中开发标签来支持扩展的组件,完成复杂的HTML(HypertextMarkupLanguage,超文本标记语言)文本的生成,在JSP(JavaServerPages)页面中,通常可以派生几类标签:简单一次性标签,循环标签,带缓存的循环标签等等,在本专利技术中都采用带缓存的循环标签(BodyTag);标签执行流程:在标签执行处理流程中,可以分为三个执行流程,标签开始执行流程,通常完成初始化;标签循环执行流程,通常处理具体标签逻辑;标签结束执行流程,通常完成标签释放;这三个流程都是JSP页面对扩展标签的自动调用执行的;标签接口:标签的执行流程分为三个部分,开始标签、标签中间内容和结束标签分别对应开始接口、循环接口和结束接口。随着互联网的发展,基于BS结构的WEB的应用系统越来越多,对于WEB应用,针对界面封装标签组件是所有WEB应用设计和开发的模式,而在JSP中,基本都是通过封装TAG标签形成组件,而标签嵌套也是必然存在的,在目前标签的封装流程中,JSP应用项目中,采用标签的方式来封装组件,是比较流行的模式。通过JSP封装标签,能够很好的解决HTML组件形成,代码复用等问题,但是如果一个父标签需要嵌套两个及以上的子标签时,存在以下开发问题,具体通过如下的例子(1)进行说明:两个子标签和一个父标签:子标签<jsp:c1></jsp:c1>;子标签<jsp:c2></jsp:c2>;父标签<jsp:p></jsp:p>;父标签生成的HTML文本数据为:<div><span>c1</span><span>c2</span></div>;子标签生成HTML文本数据为:c1;c2;在开发父标签时,生成HTML代码的前半部分(<div><span>)和后半部分(</span></div>),而对于中间部分(</span><span>)不能生成。对于上面所述的例子,目前CN200710307876.0公开的方案能够解决这样的问题,但是在该方案中,具体通过子标签调用父标签的方式来完成父标签中间部分(</span><span>)的数据,如果嵌套的子标签比较多,父标签将给子标签提供的接口功能变得很复杂,子标签调用父标签的输出接口也变得复杂,每个子标签都必需清楚的知道和找到父标签针对该组件的输出接口,并且在子标签开发流程中需要关心父标签的输出,因此现有技术没有达到组件完全分离的模式,有很大的局限性。
技术实现思路
本专利技术的目的在于为了使父标签能够容易,方便的嵌入多个子标签,在子标签之间有父标签的输出文本,并且子标签的输出不用依赖父标签的数据而提出的一种封装JSP页面下标签组件的方法和系统。为了实现以上专利技术目的,本专利技术采取的技术方案如下:一种封装JSP页面下标签组件的方法,在JSP页面中将最外层的标签定义为根标签,其它层的标签定义为非根标签,根标签和非根标签构建流程中均要创建标签输出管理器;所述的标签输出管理器控制标签的输出顺序和输出数据,输出数据包括文本对象和子标签对象。进一步的,一个JSP页面只有一个根标签,根标签没有父标签,一个根标签对应一个标签输出管理器。进一步的,一个JSP页面中至少有一个非根标签,并且每个非根标签都有父标签,一个非根标签对应一个标签输出管理器。进一步的,包括以下具体步骤:步骤201:在构建标签输出管理器时,向标签输出管理器增加一个文本对象;步骤202:在构建标签输出管理器时,向标签输出管理器增加一个子标签对象;步骤203:JSP页面开始执行输出数据时,初始化标签输出管理器,设置输出对象的当前输出位置,初始位置设置为0;步骤204:调用标签输出管理器,得到当前输出数据;步骤205:标签输出管理器返回当前输出数据后,自动将步骤203中的输出位置加1;步骤206:检测标签对象当前输出数据是否已经全部输出。进一步的,JSP页面执行标签输出时根标签的执行流程如下:步骤301:JSP页面执行根标签的开始接口;步骤302:构建标签输出对象的数组,调用步骤201、步骤202、步骤203中标签输出管理器提供的相关接口并设置子标签名称;步骤303:设置根标签的执行状态为初始化状态,设置完成后标签的开始接口流程结束;步骤304:由JSP页面自动执行子标签流程;步骤305:当JSP页面执行完子标签流程后,将自动再次执行根标签的循环接口;步骤306:调用步骤204得到当前标签输出管理器的输出对象;步骤307:如果当前输出对象为文本,直接输出,设置根标签的当前子标签输出名称为空;如果当前输出对象是子标签,设置当前子标签输出名称为步骤302设置的名称;步骤308:由页面JSP自动执行子标签流程;步骤309:判断当前输出是否完成,如否,继续步骤305;否则完成标签结束执行流程。进一步的,具体对应步骤304的子标签执行流程如下:步骤401:JSP页面自动执行标签开始接口;步骤402:判断当前根标签的初始化状态,是否为初始化流程,如果是初始化进入步骤403;步骤403:结束当前标签的开始接口流程,自动执行该标签的子标签流程;步骤404:JSP页面自动执行标签循环接口流程。进一步的,具体对应步骤309的子标签执行流程如下:步骤501:页面自动执行标签开始接口;步骤502:判断根标签的初始化状态,在该流程中状态为非初始化状态;步骤503:设置当前子标签的对应父标签中的子标签的输出名称,得到父标签的子标签名称,这里对应步骤302中设置的名称一致;在当前子标签中添加位置属性;步骤504:判断当前子标签的位置属性和父标签当前输出的子标签的位置属性是否一致,如果不一致,结束标签逻辑;步骤505:构建当前标签的输出对象的数组,和步骤302相同;步骤506:初始化当前输出对象位置为0,结束开始接口执行流程;步骤507:JSP页面执行标签循环执行流程;步骤508:根据标签输出位置输出标签;步骤509:如果当前输出对象为文本,直接输出,设置根标签的当前子标签输出名称为空;如果当前输出对象是子标签,设置当前子标签输出名称为步骤503设置的名称;步骤510:由页面JSP自动执行子标签流程;步骤511:判断当前输出是否完成,如果未完成继续步骤305;步骤512:标签组件结束执行流程。为了解决上述问题,本专利技术还提出了一种封装JSP页面下标签组件的系统,包括JSP页面,JSP页面还包括根标签、非根标签和标签输出管理器;其中,跟标签和非根标签:在JSP页面中将最外层的标签定义为根标签,其它层的标签定义为非根标签,根标签和非根标签构建流程中均要创建标签输出管理器;本文档来自技高网
...
封装JSP页面下标签组件的方法和系统

【技术保护点】
一种封装JSP页面下标签组件的方法,其特征在于,在JSP页面中将最外层的标签定义为根标签,其它层的标签定义为非根标签,根标签和非根标签构建流程中均要创建标签输出管理器;所述标签输出管理器控制标签的输出顺序和输出数据,输出数据包括文本对象和子标签对象。

【技术特征摘要】
1.一种封装JSP页面下标签组件的方法,其特征在于,在JSP页面中将最外层的标签定义为根标签,其它层的标签定义为非根标签,根标签和非根标签构建流程中均要创建标签输出管理器;所述标签输出管理器控制标签的输出顺序和输出数据,输出数据包括文本对象和子标签对象;具体包括以下步骤:步骤201:在构建标签输出管理器时,向标签输出管理器增加一个文本对象;步骤202:在构建标签输出管理器时,向标签输出管理器增加一个子标签对象;步骤203:JSP页面开始执行输出数据时,初始化标签输出管理器,设置输出对象的当前输出位置,初始位置设置为0;步骤204:调用标签输出管理器,得到当前输出数据;步骤205:标签输出管理器返回当前输出数据后,自动将步骤203中的输出位置加1;步骤206:检测标签对象当前输出数据是否已经全部输出;JSP页面执行标签输出时根标签的执行流程如下:步骤301:JSP页面执行根标签的开始接口;步骤302:构建标签输出对象的数组,调用步骤201、步骤202、步骤203中标签输出管理器提供的相关接口并设置子标签名称;步骤303:设置根标签的执行状态为初始化状态,设置完成后标签的开始接口流程结束;步骤304:由JSP页面自动执行子标签流程;步骤305:当JSP页面执行完子标签流程后,将自动再次执行根标签的循环接口;步骤306:调用步骤204得到当前标签输出管理器的输出对象;步骤307:如果当前输出对象为文本,直接输出,设置根标签的当前子标签输出名称为空;如果当前输出对象是子标签,设置当前子标签输出名称为步骤302设置的名称;步骤308:由页面JSP自动执行子标签流程;步骤309:判断当前输出是否完成,如否,继续步骤305;否则标签结束执行流程;步骤304的子标签执行流程如下:步骤401:JSP页面自动执行标签开始接口;步骤402:判断当前根标签的初始化状态,是否为初始化流程,如是则进入步骤403;步骤403:结束当前标签的开始接口流程,自动执行该标签的子标签流程;步骤404:JSP页面自动执行标签循环接口流程;步骤309的子标签执行流程如下:步骤501:页面自动执行标签开始接口;步骤502:判断根标签的初始化状态,在该流程中状态为非初始化状态;步骤503:设置当前子标签的对应父标签中的子标签的输出名称,得到父标签的子标签名称,这里对应步骤302中设置的名称一致;在当前子标签中添加位置属性;步骤504:判断当前子标签的位置属性和父标签当前输出的子标签的位置属性是否一致,如果不一致,结束标签逻辑;步骤505:构建当前标签的输出对象的数组,和步骤302相同;步骤506:初始化当前输出对象位置为0,结束开始接口执行流程;步骤507:JSP页面执行标签循环执行流程;步骤508:根据标签输出位置输出标签;步骤509:如果当前输出对象为文本,直接输出,设置根标签的当前子标签输出名称为空;如果当前输出对象是子标签,设置当前子标签输出名称为步骤503设置的名称;步骤510:由页面JSP自动执行子标签流程;步骤511:判断当前输出是否完成,如果未完成继续步骤305;步...

【专利技术属性】
技术研发人员:邓鹏
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1