![[17.0.0.4 以及更新版本]](../ng_v17004plus.gif)
配置 Liberty 以使用 JavaServer Faces 2.2
您可以將 Liberty 配置成使用 JavaServer Faces (JSF) 2.2 特性,以完整支援 JSF 2.2 規格。
關於這項作業
Liberty 的 JSF 實作是以 MyFaces 開放程式碼實作為基礎。如果要將 Liberty 伺服器配置成執行啟用 JSF 2.2 的應用程式,您必須設定 <jsf-2.2> 特性。
程序
更新 server.xml 檔,以新增 <jsf-2.2> 特性。 例如:
<featureManager>
<feature>jsf-2.2</feature>
</featureManager>
重要:
使用 JavaServer Faces 2.2 時,考量下列事項:
- 不像 JSF 2.0,JSF 2.2 特性並不會隱含載入 Bean 驗證特性。當您將應用程式從 JSF 2.0 移轉至 JSF 2.2 時,且您的應用程式使用 Bean 驗證,您也必須啟用 beanValidation-1.1 特性。
- JSF 2.2 特性需要 servlet-3.1、jsp-2.3 和 el-3.0 特性。在 server.xml 檔中啟用 JSF 2.2 特性時,這每一項特性也都會啟用。
- JSF 2.2 特性無法與 Java EE 6 特性搭配執行;例如,servlet-3.0、jsp-2.2 和 cdi-1.0。
- 您可以針對每一個伺服器實例,挑選 JSF 2.0 或 JSF 2.2 特性實作,但是您必須考量到任何的行為變更。如果必要的行為只有 JSF 2.2 特性才有,您必須使用 JSF 2.2 特性。如果現有的應用程式會因 JSF 2.2 特性中的行為變更,受到不利影響,請使用 JSF 2.0 特性,以保留該應用程式的現有行為。
- 在相同的 Liberty 伺服器中,不可能同時使用 JSF 2.0 和 JSF 2.2 特性。如果同時配置這兩個特性,會產生錯誤:
CWWKF0033E: 單態特性 jsf-2.0 和 jsf-2.2 不能同時載入。所配置的特性 jsf-2.0 和 jsf-2.2 含有一或多個造成衝突的特性。不支援您的配置;請更新 server.xml,以移除不相容的特性。
- JSF 2.2 與舊版相容,例如:JSF 2.1 和
JSF 2.0;不過,請考量下列的例外事項:
- 舊版 JSF 規格中的錯誤會抑制異常狀況,現在則會傳播到異常狀況處理程式。請閱讀 JSF 2.2 規格概觀一節中的「舊版相容性」。
- 複合元件屬性 ELResolver 和複合電腦 meta 資料的規格已變更。請閱讀 JSF 2.2 規格概觀一節中的「舊版相容性」。
結果
下一步
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>