我的网络应用程序中存在一个非常奇怪的问题。
我在 jsf 和我的某些页面上使用 icefaces (请不要问代码,因为它很多:) 我看到了firefox上出现沙漏效果。
我可以清楚地确认这是因为,不知何故,jsf循环还没有完全完成。 (所有组件都可见,但验证无效)。
请注意,如果我按F5 ,则不会出现此问题,但仅当我切换某些标签时,这基本上会更改主窗体的内容)...
你们有什么建议吗?谷歌没有帮助我......也不是萤火虫......
更新:
- 在使用Firebug进行进一步调查后,似乎当我执行ajax POST时,它不会加载<body> </body>
内的脚本和css(你会在答案中看到为什么它会在这里添加一些css和脚本)标签......但仅限<head>...</head>
答案 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>