FireFox 3.5 缓存的 JSF 问题,wyciwyg ://prefix

标签 jsf caching navigation richfaces facelets

我是 JSF 的新手,我的简单 JSF 应用程序有问题。我在 WebLogic 10.3.2 (11g) 上使用 Facelets 和 Richfaces。该应用程序本质上是 3 页:

A <--> B <--> C

其中中间箭头表示导航规则。通过进行导航a4j:commandButtons 问题出在 Firefox 3.5 中,当我从 B 单击到 C 时,我得到一个从 开始的 url。 wyciwig:// .更详细地说,起始网址是:

http://localhost:7001/myapp/index.faces

当我从 B 导航到 C 时,我得到的 url 是这样的:

wyciwyg://20/http://localhost:7001/myapp/index.faces

从 Google 搜索中,我看到 wyciwig 是 WhatYouCacheIsWhatYouGet,因此问题可能与缓存有关。在这个方向上,我做了两件事:

A. 我添加了以下元标记:

<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"/>

B. 我添加了一个 PhaseListener 来添加 HTML header 标签,如建议的 here .

不幸的是,问题仍然存在。

另一件可能相关的事情是,由于某种原因,我的导航不会更改出现在浏览器地址栏中的 url。当我将鼠标悬停在 a4j:commandButtons 上时出现在状态栏中的链接总是

http://localhost:7001/myapp/index.faces#

所以问题如下:
  • 为什么会这样 wyciwyg://20/前缀出现,我该如何克服?
  • 在页面之间导航时如何更改 url?这会使“后退按钮起作用”吗?

  • 干杯!

    更新 1:这些家伙here (葡萄牙语文本)说用 a4j:htmlCommandLink 替换所有 a4j:commandLink 可以解决问题。我做到了,他们是对的。我不明白原因,通过。

    最佳答案

    实际上答案相当简单,并在 RichFaces 常见问题解答中进行了解释,我建议您仔细阅读!

    ajax 组件不是为页面导航而设计的,以这种方式使用时将无法工作。

    http://community.jboss.org/wiki/CommonAjaxRequestsProblems#navigation

    a4j:htmlCommandLink 工作的原因是它不是真正的 ajax 组件,而是一个普通的旧 HTML 链接标签。

    希望这有助于解释事情。

    关于FireFox 3.5 缓存的 JSF 问题,wyciwyg ://prefix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1984801/

    相关文章:

    android - 抽屉导航中的图标始终为正方形 :-(

    html - 为从切片构建的导航项添加背景颜色

    jsf - 如何从 JSF 支持 bean 将消息添加到特定组件

    jsf c :forEach in h:dataTable in a PartialView

    java - JSF a4j :support Rerender on UI doesn't work

    linux - 顶部命令输出中的 Mem 和 Swap

    css - Suckerfish 下拉子菜单与主菜单不对齐

    java - 输入字符串的 NumberFormatException

    java - 可重载缓存

    ruby-on-rails - 如何防止 :@new_record when cache hits in Dalli? 的奇数插入