Nach der großen Unterstützung von JSF 2 für Anmerkungen frage ich mich, wofür ich das verwenden würde faces-config.xml
. Welche Bedeutung hat es jetzt?
Mit anderen Worten, welche Konfigurationen können nur durch faces-config.xml
und nicht über Anmerkungen vorgenommen werden?
Im Moment benutze ich es nur, um den EL-Resolver von Spring zu deklarieren.
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
</faces-config>
jsf
jsf-2
faces-config
Mahmoud Saleh
quelle
quelle
<el-resolver>
in meinerfaces-config.xml
und es funktioniert perfekt.Antworten:
Es muss noch für viele Dinge verwendet werden, die nicht kommentiert werden können. ZB benutzerdefinierte JSF-Validierungsnachrichten:
Ein globales i18n-Bundle (damit Sie nicht
<f:loadBundle>
in jeder Ansicht deklarieren müssen ):Explizit unterstützte i18n-Gebietsschemas (sodass die nicht deklarierten Gebietsschemas ignoriert werden, obwohl es ein Nachrichten- oder Ressourcenpaket dafür gibt):
Benutzerdefinierte Ansichtshandler :
Phasen-Listener (dafür gibt es noch keine Anmerkung):
Verwaltete Beans, die nicht mit Anmerkungen versehen werden können (die folgende gibt den aktuellen Stand
Date
an#{now}
):Benutzerdefinierte Fabriken, wie benutzerdefinierte Exception - Handler Fabrik (es kann auch Fabriken für
FacesContext
,ExternalContext
,LifeCycle
und vieles mehr , so dass Sie Ihre benutzerdefinierte Implementierung zur Verfügung stellen können):Um nur die häufig verwendeten zu nennen. Wenn
faces-config.xml
Ihre IDE die automatische Vervollständigung von Tags enthält, können Sie alle herausfinden. Nur die verwalteten Beans, Validatoren, Konverter, Komponenten, Renderer und Punkt-zu-Punkt-Navigationsfälle werden dank der neuen Anmerkungen und der impliziten Navigation nicht mehr benötigt.quelle
java.util.HashMap
wie#{components}
in Anforderung Umfang gespeichert wird eine bessere Aussage Übersicht über alle Komponenten Bindungen zu haben. Zum Beispielbinding="#{components.foo}"
, damit darauf verwiesen werden kann, dass es#{components.foo}
selbstdokumentierender und weniger riskant ist (aufgrund möglicher Namenskonflikte) alsbinding="#{foo}"
und#{foo}
.