在JSF中的页面导航问题

开发 后端
本文介绍在JSF中的页面导航问题的解决方法,以及解决问题时用到的代码。

我的目的是想把平时做项目遇到的一些小问题,以及解决方法告诉大家,希望各位同仁不要重蹈覆辙。如有问题,请通过邮件的方式与我联系,一同交流,共勉之!

下面就进入主题吧!来说一下我今天解决的一个问题。使用过JSF的人都知道,在JSF(指采用JSF框架的项目)中,页面之间的跳转是通过faces- config.xml文件来页面导航的。当然,你也可以用其他方式做页面跳转,但JSF不建议这样做。在做页面导航的时候,有一个“重定向”的选项,即" redirect "。代码如下:

  1. <navigation-rule> 
  2.         <from-view-id>/archives/admin/archivesAudit.jsp</from-view-id> 
  3.         <navigation-case> 
  4.            <from-outcome>auditFinish</from-outcome> 
  5.            <to-view-id>/archives/admin/archivesBrowse.jsp</to-view-id> 
  6.            <redirect /> 
  7.        </navigation-case> 
  8.  </navigation-rule> 

如果不选择此项,从当前页面跳转到另一个页面后,地址栏保留的是请求的 URL,server只是做了一个转发的动作;如果选择“重定向”,则地址栏里保留的是被请求的URL,server会重新发送一个被请求的URL。当然,不管是否做“重定向”的选择,渲染出来的页面都是正常的。但是,如果你是从添加, 修改, 删除等页面跳转到列表页的话。如不加“重定向”做导航,当成功提交后,再次刷新列表页的时候,就会再次执行上一次提交的动作。这样的结果就是,会不停的做上一次的添加, 修改或删除动作,且都是相同的数据。因为列表页保留的地址还是上次提交的URL,这就是为什么会执行上一个提交的动作的原因。解决方案是在做页面导航时加 “重定向”选项,请大家切记!

【编辑推荐】

  1. 简述JSF入门介绍
  2. JSF和Struts的区别概述
  3. 编写JSF自定义复合组件的原则和技巧
  4. 选择JSF不选Struts的十大理由
  5. Tapestry和JSF对比
责任编辑:佚名 来源: JavaEye
相关推荐

2010-01-18 09:37:39

JSF 2.0Java EE 6

2009-06-26 17:27:15

JSF文件

2009-12-28 17:17:52

WPF导航

2009-06-23 15:09:14

managed-beaJSF

2009-07-14 15:42:38

MyEclipse开发

2009-06-29 09:38:50

JSF标签JSF

2009-06-23 09:33:20

FCKEditorJSFJSP

2009-06-29 17:09:49

JavaBeanJSP

2009-07-14 16:25:04

MyEclipse开发

2009-06-22 15:39:45

JSFGlassFish管理

2009-07-14 16:07:46

MyEclipse开发

2009-06-25 11:11:25

控制JSF切入点

2009-06-26 13:11:33

可视化开发JSFNetBeans

2009-07-02 09:25:41

JSP实现页面跳转

2009-06-22 15:35:31

JSF和Struts

2009-06-12 18:35:33

JSF f:loadB

2009-06-17 16:56:45

JBoss服务器JSF实现

2009-09-23 17:56:45

JSF入门

2009-06-22 16:42:26

JSF的工作方式

2009-06-23 10:17:09

Ajax事件和错误JSF2
点赞
收藏

51CTO技术栈公众号