【发布时间】:2009-12-31 10:15:11
【问题描述】:
我是 JSF 新手,我的简单 JSF 应用程序有问题。我在 WebLogic 10.3.2 (11g) 上使用 Facelets 和 Richfaces。该应用程序基本上是 3 页:
A B C
中间箭头表示导航规则。导航是通过 a4j:commandButtons 执行的。问题出在 Firefox 3.5 中,当我从 B 点到 C 点时,我得到一个从 wyciwig:// 开始的 url。更详细地说,起始网址是:
http://localhost:7001/myapp/index.faces
当我从 B 导航到 C 时得到的 url 是这样的:
所见即所得://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.按照here的建议,我添加了一个 PhaseListener 来添加 HTML 标头标签。
很遗憾,问题仍然存在。
可能相关的另一件事是,由于某种原因,我的导航不会更改浏览器地址栏中显示的 url。当我将鼠标悬停在 a4j:commandButtons 上时,状态栏中出现的链接始终是
http://localhost:7001/myapp/index.faces#
所以问题如下:
- 为什么会出现这个 wyciwyg://20/ 前缀,我该如何克服?
- 从一个页面导航到另一个页面时,如何更改 url?这会使“后退按钮起作用”吗?
干杯!
更新 1: 这些家伙 here(葡萄牙语文本)说用 a4j:htmlCommandLink 替换所有 a4j:commandLink 可以解决问题。我做到了,他们是对的。我不明白原因,通过。
【问题讨论】:
标签: jsf caching navigation richfaces facelets