據我所知,資源庫的合同將創建支持模板,但即使沒有它,模板可以很容易地通過用戶界面來實現的:插入所引用:何時在JSF 2.2中使用資源庫合同?
<div id="content">
<ui:insert name="content" />
</div>
而是創建一個「合同」目錄中, '模板'目錄可以在Web應用程序根目錄下使用。
那麼,什麼是使用合同的好處?
據我所知,資源庫的合同將創建支持模板,但即使沒有它,模板可以很容易地通過用戶界面來實現的:插入所引用:何時在JSF 2.2中使用資源庫合同?
<div id="content">
<ui:insert name="content" />
</div>
而是創建一個「合同」目錄中, '模板'目錄可以在Web應用程序根目錄下使用。
那麼,什麼是使用合同的好處?
嗯,你知道,無論是流量和資源庫合約均 顯然,大件功能。而一個資源庫合同 真的,如果你要 支持移動和桌面客戶端,因爲你可以切換 來回一組,你只定義模板之間的情況真的很強大。所以 這是一個非常強大的功能。
我也希望,人們看到。但關於它的好處是,這是一個可堆疊的功能。所以這意味着你實際上可以有一個 資源庫合同的佈局,然後是一個資源庫 合同的頂部,以顏色樣式或類似的東西。所以 你可以來回切換之間 - 我只是用一個例子, 明顯 - 藍色和紅色的造型,以及移動與桌面 造型。所以這將是四個排列,你已經 了。
就是這樣跳出我,因爲我的另一件事 - 我敢肯定你 跑進這一點。我有客戶誰基本上有他們出售的產品 ,或者它是一個託管產品或它的前提下 產品。但無論哪種方式,每個客戶都需要不同的外觀和感覺,以及不同的參數集合等等。你可以 做了很多的數據庫,但在某些時候,你要 實際更改模板和資源庫合同 使得這非常容易使用。所以我認爲這也是我最喜歡的 功能之一。
資源庫合同允許你有哪些是在JSF 2.0
推出多個資源庫,其中CSS,JS,圖片和複合組件方式支付。
<ui:inserts name="must have the same attribute value" />
有幾種方法可以應用它。
-Web Pages/
--contracts/
---resource-1/
-----template.xhtml
-----css/
-----js/
-----img/
---resource-2/
-----template.xhtml
-----css/
-----js/
-----img/
#1:
在faces-config.xml文件
<application>
<contract-mapping>
<url-pattern>*</url-pattern>
<contracts>resource-1</contracts>
</contract-mapping>
<contract-mapping>
<url-pattern>/admin/*</url-pattern>
<contracts>resource-2</contracts>
</contract-mapping>
</application>
#2設置合同精讀每個視圖:通過URL模式自動映射上的觀點合同: 這允許用戶選擇要使用的設計(模板)。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<f:view contracts="#{templateMB.template}">
<ui:composition template="/template.xhtml">
<ui:define name="content">
<h:form>
<h:selectOneMenu valueChangeListener="#{templateMB.tempEvent}"
onchange="submit()">
<f:selectItem itemLabel="..." itemValue="..."/>
<f:selectItem itemLabel="resource-1" itemValue="resource-1"/>
<f:selectItem itemLabel="resource-2" itemValue="resource-2"/>
</h:selectOneMenu>
</h:form>
</ui:define>
</ui:composition>
</f:view>
</html>
當管理bean是:
@ManagedBean
@SessionScoped
public class TemplateMB {
private String template = "resource-1"; // make default
public TemplateMB() {
}
public void tempEvent(ValueChangeEvent e){
template = (String) e.getNewValue();
}
public String getTemplate() {
return template;
}
}
要創建多個模板,並將其應用到同一應用程序的不同頁面,還允許用戶選擇他們想要應用的模板。
我只是用Google搜索 '資源庫合同',發現幾篇文章/博客/'教程,解釋他們。我通過簡單的「模板化」來了解更難以實現的事情。不知道你是否讀過那些,但請先做。特別是關於動態切換模板的部分。 – Kukeltje
對於桌面和移動應用程序,可能會出現這種情況,可以使用資源契約庫以不同的方式格式化視圖。 – user697911