JSF2.0中RESTful导航方式的探究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:ifever2006
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为了方便用户使用,多数网站都采用了页面导航。而在JSF2.0中,为了方便进行页面导航,增加了RESTful导航的内容,这很大程度的改善了JSF框架。该文着重介绍了JSF2.0中的RESTful导航方式,并对其导航处理进行了分析。
  关键词:导航;重定向;表述性状态转移
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)07-1546-02
  Exploring the RESTful Navigation Way in JSF2.0
  HOU Yan-mei
  (Dept. of Information,Capital University of Economic and Business, Beijing 100070, China)
  Abstract: In order to facilitate the user use, many web sites are adopting page navigation. And in JSF2.0, in order to facilitate assessment page navigation, increased the RESTful navigation elements, which greatly improved the JSF framework. This paper introduces the RESTful navigation way in JSF2.0, and analyzed the navigation processing.
  Key words: navigation; redirection; RESTful
  2009年基于组件的框架的JSF2.0正式发布了,伴随而来的是更简单的操作,更完美的整合,更规范的标准,以及对更多技术的支持等等。而在这种种变化中,不难发现Web页面导航也在发生着巨大的变化。导航最原始的定义是通过绑定到超媒体信息上的超链接在页面间跳转的动作。而在今天网络信息爆炸的情况下,导航的作用已不能局限于页面间的跳转,还包括程序信息的传递和转移。JSF提供了多种导航方式,尤其是新发布的JSF2.0,其更加丰富了页面导航方式的种类。而在多种导航方式中最引起人们注意的还是RESTful的导航方式。
  默认情况下,JSF应用程序像服务器产生一系列的POST请求。每一个POST请求包含格式化的数据。这对于需要用户输入信息的应用程序是很有意义的。但是我们知道,在许多程序中,我们并不需要输入任何信息,只是通过简单的单击超级链接或是按钮来实现页面间的跳转。还有另外重要的一点,为了通过重访URL能够返回到同一页面,相应的链接都应该是可标示的,所有的页面都是缓存的。但是,POST请求在标示或者缓存上是无效的,这为创建高效的网页造成了很大的阻碍。
  1 RESTful简介
  为了解决这个问题,JSF2.0提出了一种被称为REST(Representational State Transfer)的风格的设计理念,它倡导页面应该像HTTP事先预想的那样工作。查找应该使用GET请求。PUT,POST和DELETE请求应该用来创建、修改和删除。
  GET请求用来查找信息,如http://myserver.com/animals?kind=fish,这即是一种RESTful。但是GET请求不能用来更新信息。如为动物增加一个新的种类就是不恰当的。GET请求应该是等幂的。简单的说就是指第二次提出请求与第一次提出应该是没有什么不同的。但对于动物来说提出两次请求就是增加两种动物。这也说明在一个大的应用程序中,POST请求在上下文是非常恰当的。因此,RESTful网页需要共享部分POST请求,仅仅依靠GET请求是不可能完成全部任务的。
  一般的,JSF对于产生或是使用URL并没有一个标准的机制,但是从JSF2.0开始,RESTful支持GET请求。我们将在下面的段落中详细介绍。
  2 RESTful中的GET请求
  2.1视图参数
  http://myserver.com/ animals?kind=fish语句中,动物的种类名称kind被作为查询参数。当服务器端收到该请求时,参数值被转换为相应的bean值,这就是使用视图参数的目的。
  在页面的顶端加上如下标签:
  
  
  

  处理请求时,种类kind的值被传递给animals类的setCurrentKind()方法。
  JSF页面可以有很多视图参数。和其他请求参数一样,视图参数可以被转换和验证。
  2.2 GET请求链接
  使用h:commandButton和h:commandLink标记会产生POST请求,为了使用户能够用GET请求进行导航,需要通过使用h:button或是h:link标记在页面添加发送GET请求的按钮或是链接。
  对于这些请求,需要控制目的视图ID和查询参数。目的视图ID由outcome属性确定,而其属性值可以是一个固定值,如:
  
  或者也可以选择提供一个值表达式:
  
  此时,getOutcome()方法被激活并一定会产生一个结果字符串。结果字符串以普通方式放入到导航处理中,产生目标视图ID。
  GET请求链接中的outcome属性在页面呈现之前被计算,链接被嵌入到页面中。
  2.3指定请求参数
  在大多数情况下,向服务器发送一个请求而没有任何请求参数是没有什么意义的。如果没有请求参数,服务器就得不到上下文数据,也无法根据上下文数据为客户创建“个性化”的响应。
  GET请求链接的参数来源于:
  1)结果字符串
  2)视图参数
  3)嵌入在f:param标签中
  当结果字符串作为请求参数时,导航处理器从目标视图ID结果中取下原始参数并将其计算后的结果添加为新的参数。如:
  
  示例中,导航处理首先会从取下outcome的参数index?q=1,将其计算。由于JSF中规定:
  1)如果outcome属性值没有文件扩展名,附加上当前视图的扩展名。
  2)如果outcome属性值不是以/开头,首先考虑当前视图的路径。
  这里,我们假设当前视图扩展名为.xhtml,则计算的结果为/index.xhtml?q=1,将其添加为目标视图ID的新的outcome的值。
  当outcome属性的值是复合参数时,要使用分隔符
其他文献
目的:综合分析中西医结合(combine traditional Chinese and western medicine)治疗冠心病(coronary heart disease)心绞痛的临床效果,为治疗提供科学的数据参考。方法:选取在2014
RPGMakerXP是一款主要用来制作角色扮演类游戏的软件,该软件本身带有很多地图元件、角色图像、角色动画等素材,我们可以通过这些素材设计出比较好的游戏。该文适应教学改革的需要,为实现"寓教于乐"的目的,利用该软件设计了一款基于初中化学的角色扮演类教育游戏,目的是让初三的学生在玩游戏的同时学到相应的知识,到达良好的学习效果。该文在最后把设计的游戏在学生中进行测试,达到了良好的效果。
利用直流磁控溅射法,采用氧化锌铝(98%ZnO+2%Al2O3)为靶材,在普通载玻片上制备了AZO(Z n O:Al)薄膜。采用X射线衍射仪、场扫描电镜对薄膜的结构及表面形貌进行了分析,采用分
摘要:入侵检测系统是一种对网络进行动态监测,在发现入侵行为时发布预警的主动网络安全技术,该文首先介绍了通用入侵检测系统的组成架构,然后介绍了两种常用的入侵检测分析技术,最后设计并实现一个具有实际应用价值的入侵检测系统模型。  关键词:入侵检测系统;IDS  中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)22-5318-03  The Design and Implem
带状疱疹是由水痘一带状疱疹病毒引起的急性疱疹性皮肤病,多为急性发病,临床表现为密集成群的水疱沿一侧周围神经呈带状分布,好发部位为肋间神经分布区域,常伴剧烈的神经痛及局部
目的 : 分析消渴痹证患者实施中医特色护理技术的临床效果.方法:8例消渴痹证患者,按照护理方式不同分为常规组(50例,常规 护理措施)和特色组(48例,特色中医护理措施).对比两组护理
胃食管反流病是指胃或者十二指肠内容物反流入食管引起不适症状和/或并发症的一种疾病[1]。烧心与反流是其最具特征性的表现,还可出现胸痛、吞咽困难,此外还会有食管外表现,如咽
摘要:该文介绍了高校计算机公共机房管理的特点,并从实际机房管理经验出发,针对机房管理制度、软硬件管理等方面对提高机房管理水平提出了若干建议,对高校机房管理有一定的参考价值。  关键词:公共机房管理;制度管理;软硬件管理  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)15-3649-02  当前,随着信息化技术的快速普及,高校非计算机专业课程对计算机的使用也越来越频
云计算作为一种以数据为中心的新型网络计算方式,将深刻地影响未来互联网的运作和服务模式,图书馆必然也会受到这种IT新技术的强烈冲击。云计算使图书馆信息服务进入了一个新的