Java Server Faces JSF - Wer ist verantwortlich für automatisch generierte IDs?

8

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

    
user566702 07.01.2011, 10:00
quelle

3 Antworten

10

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 .

    
McDowell 07.01.2011 10:38
quelle
3

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 werden     
mvg 07.01.2011 10:09
quelle
0

Die 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.

    
darioo 07.01.2011 10:23
quelle

Tags und Links