Wenn das Faces-Servlet ein jsp zum Servlet im Arbeitsverzeichnis kompiliert, erzeugt es ids wie j_id_jsp_1024919151_1 ...
Wann ändert sich die ID? Ich habe es auf der gleichen Maschine versucht, Arbeitsverzeichnis zu reinigen, immer noch das gleiche. Ich habe einen anderen Apache Tomcat auf demselben Rechner gestartet und ich habe neue IDs bekommen ...
Danke Stefan
Die ID einer Komponente wird von der Implementierung generiert, wenn dies der Fall ist nicht festgelegt.
Der id -Attributwert, der auf die Seite ausgegeben wird, ist Client-ID . Dies wird mithilfe der Regeln erstellt, die in der Verknüpfung definiert sind, und enthält den übergeordneten NamingContainer ids und möglicherweise der View-Namespace.
Weitere Informationen zum Arbeiten mit JSF-Client-IDs hier .
JSF generiert automatisch IDs für die Komponente während des Lebenszyklus, wenn Sie keine angeben. Wenn Sie diese Funktion nicht möchten, setzen Sie die ID für alle Komponenten einzeln und setzen Sie die ID für <h:form>
, um dies zu vermeiden.
Wenn Sie die ID selbst festlegen, hilft Ihnen das bei der Javascript-basierten Validierung, bei der die Werte der Felder mit ids
abgeleitet werdenDie ID-Generierung wäre implementierungsabhängig. Damit meine ich, dass jede JSF-Implementierung, die Sie verwenden, einen Mechanismus zum Generieren von IDs basierend auf Variablen aufweist, die für eine eindeutige Identifizierung "gut genug" sind. Möglicherweise: Klassenname, HTML Elementname, etc ....
Sie können den Quellcode der Referenzimplementierung überprüfen.