我正在研究如何使用Primefaces 3.4.1 p:TabMenu
:
主页:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
<div id="settingsHashMapz" class="settingsHashMap" style="width:1150px; height:400px; position:absolute; top:20px; left:1px">
<p:tabMenu id="tabs" activeIndex="0" >
<p:menuitem value="tab1" url="/tab1.jsf" />
<p:menuitem value="tab2" url="/tab2.jsf" />
<p:menuitem value="tab3" url="/tab3.jsf" />
</p:tabMenu>
</div>
</h:body>
</html>
标签页1:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
<ui:composition>
<h:panelGroup>
<h:form id="tab1" >
.................
</h:form>
</h:panelGroup>
</ui:composition>
</h:body>
</html>
我在尝试使用p:tabMenu
时发现了一个问题。我无法正确使用ui:composition
。我必须在每个标签页中声明名称空间,因为它们不能使用主JSF页面中的名称空间。如果我将所有命名空间声明到选项卡页面中,我必须等待~3秒才能从服务器传输Javascript库。正如你所看到的那样浪费资源:
GET http://server:8080/DCProfileTabGenerators.jsf 200 OK 29ms jquery....min.js (line 4)
GET http://server:8080/javax.f...uery/jquery.js.jsf?ln=primefaces&_=1349526707969 200 OK 11ms jquery....min.js (line 4)
GET http://server:8080/javax.f.../primefaces.js.jsf?ln=primefaces&_=1349526708568 200 OK 8ms jquery....min.js (line 4)
GET http://server:8080/javax.f...source/jsf.js.jsf?ln=javax.faces&_=1349526708949 200 OK 8ms jquery....min.js (line 4)
GET http://server:8080/resources/js/tabs.js?_=1349526709016 200 OK 10ms
如何将声明到主JSF页面的名称空间用于标签JSF页面?
答案 0 :(得分:2)
在页面顶部声明命名空间不会带来任何实际的性能损失。它只是声明您希望在给定页面文件上使用哪些名称空间。实质上没有真正的方法可以做到这一点,但这不是必要的。
以下GET请求用于将必要的javascript库,样式表和图像下载到客户端。根据客户端浏览器设置,这些设置应在第一个请求之后进行缓存,以便此客户端在整个应用程序中导航页面时不必多次下载它们。