切换标签时firefox上的沙漏问题

时间:2011-03-31 14:04:21

标签: ajax jsf icefaces

我的网络应用程序中存在一个非常奇怪的问题。

我在 jsf 和我的某些页面上使用 icefaces (请不要问代码,因为它很多:) 我看到了firefox上出现沙漏效果。

我可以清楚地确认这是因为,不知何故,jsf循环还没有完全完成。 (所有组件都可见,但验证无效)。

请注意,如果我按F5 ,则不会出现此问题,但仅当我切换某些标签时,这基本上会更改主窗体的内容)...

你们有什么建议吗?谷歌没有帮助我......也不是萤火虫......

更新: - 在使用Firebug进行进一步调查后,似乎当我执行ajax POST时,它不会加载<body> </body>内的脚本和css(你会在答案中看到为什么它会在这里添加一些css和脚本)标签......但仅限<head>...</head>

中的那些

1 个答案:

答案 0 :(得分:0)

问题解决了! (请在继续阅读此答案之前查看我的更新)

我的主模板中有这个代码:

<head>
<ui:include
    src="/WEB-INF/jsf/common/templates/main/commonResources-include.xhtml" />
</head>

现在请注意commonResources-include.xhtml有这段代码(请注意html标签!)

<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets">

..code..
</html>

似乎无论何时使用这些facelets组件,模板等,你必须使用 <ui:composition>标签,而不是<html>,因为html标签会混淆渲染引擎浏览器!奇怪的是,互联网上的很多例子都使用了这些facelet的html标签,这些标签在helloWorld示例中没有出现问题,但在复杂的应用程序中可能会很麻烦!

所以,最终的代码:

<ui:composition
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets">
..code..
</ui:composition>