1
是否可以在<ui:include>
內寫入<ui:insert>
?當我嘗試使用<ui:define name="jsInclude">
時,內容不可見。當使用JSF 1.2進行嘗試時,這是可行的,但不適用於JSF 2.2。ui:在ui中插入:include不起作用
任何人都可以幫助我理解我在JSF 2.2中的模板概念所缺少的東西嗎?
謝謝!
下面是我的代碼
這是模板文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<head>
<title><ui:insert name="browserTitle">My Page</ui:insert></title>
<ui:insert name="head"></ui:insert>
<ui:include src="myIncludeFile.xhtml" />
</head>
<body>
<div class="mainContent">
<!-- START OF BODY CONTENT //-->
<ui:insert name="body">Default Body</ui:insert>
<!-- END OF BODY CONTENT //-->
</div>
</body>
</html>
這是包含文件
<span xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition>
<ui:insert name="jsInclude"></ui:insert>
</ui:composition>
</span>
下面是主要的客戶端頁面
<!DOCTYPE HTML>
<html
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="../templates/myTemplate.xhtml">
<ui:define name="browserTitle">My Page</ui:define>
<ui:define name="head">
This is head
</ui:define>
<ui:define name="jsInclude">
This is js include!
</ui:define>
<ui:define name="body">
This is body!
</ui:define>
</ui:composition>
</html>
您需要''內部''如 '。這些模板頁面應該放置在WEB-INF目錄下,以便它們不被提供給客戶端,如果他們要求使用相應URL的模板頁面。 –
Tiny
嘗試將包含的文件更改爲' ... ui:component> ' –
我面臨同樣的問題,我試圖提取一個包含很多primefaces控件的頭文件,使其更易讀。我嘗試了上述兩種解決方案,兩者都不起作用。如果我能解決問題,我會發布解決方案。 –