Mar*_*kis 4 navigation jsf caching richfaces facelets
我是JSF的新手,我的简单JSF应用程序有问题.我在WebLogic 10.3.2(11g)上使用Facelets和Richfaces.该申请基本上是3页:
A < - > B < - > C.
其中中间箭头表示导航规则.导航是通过a4j执行的:commandButtons问题出在Firefox 3.5中,当我从B到C点击时,我从wyciwig://获取一个url .更详细地说,起始URL是:
HTTP://本地主机:7001/MyApp的/ index.faces
当我从B导航到C时,我得到的网址是:
wyciwyg:// 20/http:// localhost:7001/myapp/index.faces
从Google搜索中我看到wyciwig是WhatYouCacheIsWhatYouGet,因此问题可能与缓存有关.在那个方向上,我做了两件事:
答:我添加了以下元标记:
<meta http-equiv="Pragma" content="No-cache"/>
<meta http-equiv="Cache-Control" content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="Expires" content="-1"/>
Run Code Online (Sandbox Code Playgroud)
B.我添加了一个PhaseListener来添加HTML标头标签,如此处所示.
不幸的是,问题仍然存在.
另一件可能相关的事情是,由于某种原因,我的导航不会更改浏览器地址栏中显示的网址.当我将鼠标悬停在a4j:commandButtons上时,状态栏中显示的链接始终是
HTTP://本地主机:7001/MyApp的/ index.faces#
所以问题如下:
干杯!
更新1:这些家伙在这里(葡萄牙文)说,更换所有A4J:commandLink与A4J:htmlCommandLink解决了这个问题.我做了,他们是对的.通过,我不明白原因.
小智 5
实际上答案很简单,并在RichFaces FAQ中解释,我建议你仔细阅读!
ajax组件不是为页面导航而设计的,在使用这种方式时不起作用.
请参阅http://community.jboss.org/wiki/CommonAjaxRequestsProblems#navigation
a4j:htmlCommandLink的工作原理是它不是一个真正的ajax组件,而是一个普通的旧HTML链接标签.
希望有助于解释事情.