一种扩展jsf生命周期的方法及装置的制造方法

文档序号:10569905阅读:176来源:国知局
一种扩展jsf生命周期的方法及装置的制造方法
【专利摘要】本申请公开了一种扩展JSF生命周期的方法及装置,包括:获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean;若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充;根据填充后的第一后台bean显示所述第一视图。
【专利说明】
_种扩展JSF生命周期的方法及装置
技术领域
[0001]本申请涉及计算机技术领域,尤其涉及一种扩展JSF(Java Server Faces)生命周期的方法及装置。
【背景技术】
[0002]JSF生命周期一般有5个阶段:恢复视图阶段,该阶段中JSF控制器根据视图1D查找相应组件,构造后台视图结构;如果未发生视图切换,则直接进入渲染响应阶段;请求应用值阶段,绑定界面输入与后台视图结构;更新模型值阶段,为后台托管(Bean)赋值;调用应用程序阶段,执行具体后台Bean的具体业务;渲染响应阶段,显示新视图或原视图。
[0003]在第一次加载一个页面时,JSF会创建一个空视图。这个空视图会在用户事件产生时进行填充,然后JSF直接过渡到渲染响应阶段进行显示新视图。当在从当前页面跳转到其它页面并再跳转到当前页面时,则由于进行了跨视图操作,当前页面的视图在跳转过程中会丢失,从而需要在跳转到当前页面时,重新创建一个空视图,并通过人工恢复跨视图操作前的数据,从而导致处理速度缓慢。特别是对于企业级交易系统来说,由于需要频繁在多个页面之间跳转,一方面,保存与恢复视图信息没有统一的方法,每一个视图切换时参数的传递需要增加额外代码,带来大量的开发、测试与维护成本;另一方面,视图中的缓存没有统一的清理方式,可能导致服务器额外的内存开销,甚至引发性能问题。

【发明内容】

[0004]本申请实施例提供一种扩展JSF生命周期的方法及装置,用以扩展JSF生命周期。
[0005]本申请实施例提供一种扩展JSF生命周期的方法,包括:
[0006]获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean;
[0007]若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充;
[0008]根据填充后的第一后台bean显示所述第一视图。
[0009]可选的,该方法还包括:
[0010]若确定访问图中未缓存与所述第一后台bean对应的后台数据,则将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。
[0011]可选的,该方法还包括:
[0012]判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。
[0013]可选的,所述根据填充后的第一后台bean显示所述第一视图之后,还包括:
[0014]通过所述第一视图中的URL链接获得第二视图标识;
[0015]若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据;
[0016]通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。
[0017]可选的,所述通过所述第一视图中的URL链接获得第二视图标识之后,还包括:
[0018]根据所述第一视图当前缓存的后台数据的缓存属性对所述访问图中缓存的第一视图的后台数据进行更新。
[0019]本申请实施例提供一种扩展JSF生命周期的装置,该装置包括:
[0020]获取单元,用于获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean;
[0021]填充单元,用于若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充;
[0022]显示单元,用于根据填充后的第一后台bean显示所述第一视图。
[0023]可选的,所述填充单元具体用于:
[0024]若确定访问图中未缓存与所述第一后台bean对应的后台数据,则将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。
[0025]可选的,所述装置还包括清理单元;所述清理单元具体用于:
[0026]判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。
[0027]可选的,所述显示单元还用于:
[0028]通过所述第一视图中的URL链接获得第二视图标识;
[0029]若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据;
[0030]通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。
[0031]可选的,所述填充单元还用于:
[0032]根据所述第一视图当前缓存的后台数据的缓存属性对所述访问图中缓存的第一视图的后台数据进行更新。
[0033]根据本申请实施例提供的方法及装置,在创建与所述第一视图标识对应的第一视图的第一后台托管bean之后,若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则可以直接根据访问图中缓存的数据对所述第一后台bean进行填充,从而实现后台bean的跨视图的生命周期,提高了系统效率。
【附图说明】
[0034]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为本申请实施例提供的一种扩展JSF生命周期的方法流程示意图;
[0036]图2为本申请实施例提供的一种扩展JSF生命周期的装置结构示意图。
【具体实施方式】
[0037]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0038]如图1所示,为本申请实施例提供一种扩展JSF生命周期的方法流程示意图,包括:
[0039]步骤101:获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean;
[0040]步骤102:若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充;
[0041]步骤103:根据填充后的第一后台bean显示所述第一视图。
[0042]本申请实施例中,在处理HTTP(Hyper Text Transport Protocol,超文本传输协议)请求的过程中,可以分析视图跳转过程,从而逐步形成完整的访问图。
[0043]本申请实施例中,访问图中缓存了至少一个视图的后台bean的后台数据,并且包含各视图之间跳转的路径。后台Bean中保存了与之对应的视图中的后台数据,一个视图可以对应一个后台Bean。
[0044]本申请实施例中,视图表示组成特定页面的所有组件,它被保存在客户端(通常存储在隐藏字段中)或服务器中(通常在会话中)。
[0045]步骤101中,获取到的第一视图标识可以为通过URL(Uniform Resource locator,统一资源定位器)链接获取到的。如果是初次访问的原始视图,则可以直接执行渲染响应。
[0046]在获取到第一视图标识后,进入恢复视图阶段,此时JSF控制器可以根据第一视图标识查找相应组件,构造第一视图,并直接进入渲染响应阶段。其中,构造的第一视图会在用户事件产生时进行填充相应的后台数据,后台数据保存在后台bean中。
[0047]在渲染响应阶段,可以创建与第一视图标识对应的第一视图的第一后台bean。
[0048]本申请实施例中,在渲染响应阶段,还可以对访问图的数量进行清理,从而减少缓存的消耗。具体的,构造第一视图之后,在渲染响应阶段,判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。其中,阈值可以为10,当然阈值也可以为其它值,具体可以根据实际情况确定,在此不再赘述。
[0049]本申请实施例中可以直接将目前不在使用的访问图清理掉,也可以按照其他方法对访问图进行清理。举例来说,将最近一段时间内最少被使用的访问图清理掉,具体的,为每个访问图设置一个对应的计时器,当访问图被使用时,将该访问图对应的计时器清零,在对访问图进行清理时,将计时最多的N个计时器对应的访问图清理掉。其中,N为大于O的正整数。
[0050]本申请实施例中,还可以将最少被使用的访问图清理掉,具体的,为每个访问图设置一个对应的计数器,当访问图被使用时,将该访问图对应的计数器执行加一操作。在对访问图进行清理时,将计数最少的N个计数器对应的访问图清理掉。当然,还可以使用其他方法进行清理访问图,在此不再赘述。
[0051]步骤102中,还可以将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。
[0052]进一步的,在将后台数据缓存到第一后台bean中时,还可以根据后台数据的数据属性进行缓存。若后台数据的数据属性为临时数据,则可以不对该后台数据进行缓存;若后台数据的数据属性为非临时数据,则可以对该后台数据进行缓存。
[0053]如果通过第一视图跳转到第二视图,则还可以通过与第一视图对应的访问图对第二视图的后台数据进行缓存。举例来说,在第一视图上查询并选择交易后发起修改,进入与交易金额与币种修改页面对应的第二视图。此时,先执行第一视图的恢复视图阶段、请求应用值阶段、校验阶段、更新模型值阶段、调用应用程序阶段,然后执行第二视图的渲染响应阶段。如果是初次进入第二视图,此时与第一视图对应的访问图中没有第二视图中信息,则创建第二视图的第二后台Bean,并将第二后台Bean中的后台数据缓存到第一视图对应的访问图中,从而这样就实现了跨视图(从第一视图到第二视图)的缓存。
[0054]举例来说,通过所述第一视图中的URL链接获得第二视图标识;若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据;通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。
[0055]需要说明的是,上述过程中,执行第一视图的调用应用程序阶段时,若确定需要跳转到第二视图,则在跳转之前,根据当前第一视图的后台数据对与第一视图对应的访问图中的第一视图的后台数据进行刷新。
[0056]最后,在步骤103中,显示第一视图。
[0057]本申请实施例中,在显示第一视图的同时,还可以根据用户事件产生的后台数据对与第一视图对应的访问图中缓存的后台数据进行更新。
[0058]基于相同的技术构思,本申请实施例还提供一种扩展JSF生命周期的装置,该装置可执行上述方法实施例。
[0059]如图2所示,为本申请实施例提供一种扩展JSF生命周期的装置结构示意图。
[0060]该装置可执行图1所示的流程,该装置包括:
[0061]获取单元201,用于获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean ;
[0062]填充单元202,用于若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充;
[0063]显示单元203,用于根据填充后的第一后台bean显示所述第一视图。
[0064]可选的,所述填充单元202具体用于:
[0065]若确定访问图中未缓存与所述第一后台bean对应的后台数据,则将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。
[0066]可选的,所述装置还包括清理单元;所述清理单元具体用于:
[0067]判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。
[0068]可选的,所述显示单元203还用于:
[0069]通过所述第一视图中的URL链接获得第二视图标识;
[0070]若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据;
[0071]通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。
[0072]可选的,所述填充单元202还用于:
[0073]根据所述第一视图当前缓存的后台数据的缓存属性对所述访问图中缓存的第一视图的后台数据进行更新。
[0074]综上所述,根据本申请实施例提供的方法及装置,在创建与所述第一视图标识对应的第一视图的第一后台托管bean之后,若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则可以直接根据访问图中缓存的数据对所述第一后台bean进行填充,从而实现后台bean的跨视图的生命周期,提高了系统效率。
[0075]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0076]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0077]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0078]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0079]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求的范围之内,则本申请也意图包含这些改动和变型在内。
【主权项】
1.一种扩展JSF生命周期的方法,其特征在于,该方法包括: 获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean; 若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充; 根据填充后的第一后台bean显示所述第一视图。2.如权利要求1所述的方法,其特征在于,该方法还包括: 若确定访问图中未缓存与所述第一后台bean对应的后台数据,则将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。3.如权利要求1所述的方法,其特征在于,该方法还包括: 判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。4.如权利要求1至3任一所述的方法,其特征在于,所述根据填充后的第一后台bean显示所述第一视图之后,还包括: 通过所述第一视图中的统一资源定位器URL链接获得第二视图标识; 若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据; 通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。5.如权利要求1所述的方法,其特征在于,根据填充后的第一后台bean显示所述第一视图之后,还包括: 根据所述第一视图当前缓存的后台数据的缓存属性对所述访问图中缓存的第一视图的后台数据进行更新。6.一种扩展JSF生命周期的装置,其特征在于,该装置包括: 获取单元,用于获取第一视图标识,并在渲染响应阶段创建与所述第一视图标识对应的第一视图的第一后台托管bean; 填充单元,用于若确定与所述第一视图对应的访问图中缓存了与所述第一后台bean对应的后台数据,则根据访问图中与所述第一后台bean对应的后台数据对所述第一后台bean进行填充; 显示单元,用于根据填充后的第一后台bean显示所述第一视图。7.如权利要求6所述的装置,其特征在于,所述填充单元具体用于: 若确定访问图中未缓存与所述第一后台bean对应的后台数据,则将生成的与所述第一视图对应的后台数据缓存在所述第一后台bean中。8.如权利要求6所述的装置,其特征在于,所述装置还包括清理单元;所述清理单元具体用于: 判断当前缓存的访问图的数量是否大于阈值,若是,则对当前缓存的访问图进行清理。9.如权利要求6至8任一所述的装置,其特征在于,所述显示单元还用于: 通过所述第一视图中的统一资源定位器URL链接获得第二视图标识; 若确定不存在与所述第二视图标识对应的第二视图,则根据所述第二视图标识在渲染响应阶段创建与所述第二视图以及所述第二视图的第二后台bean,并通过第二后台bean中缓存所述第二视图的后台数据; 通过所述访问图缓存所述第二视图的后台bean中缓存的后台数据以及所述第二视图标识,并显示所述第二视图。10.如权利要求6所述的装置,其特征在于,所述填充单元还用于: 根据所述第一视图当前缓存的后台数据的缓存属性对所述访问图中缓存的第一视图的后台数据进行更新。
【文档编号】G06F17/30GK105930333SQ201610049305
【公开日】2016年9月7日
【申请日】2016年1月25日
【发明人】王述振
【申请人】中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1