--Umgebung - CentOS Linux release 7.8.2003 (Core) - Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0) - openjdk version "11.0.7" 2020-04-14 LTS - JSF 2.3.9
In JSF kann der ID-Attributwert als ein Wert ausgegeben werden, der sich von dem für xhtml verwendeten Wert unterscheidet. Das Buch beschrieb das Namensattribut, aber das ID-Attribut kann möglicherweise auch die Entsprechung mit dem Komponentenbaum verstehen.
FacesServlet generiert eine HTML-Datei aus dem Komponentenbaum und sendet sie an den Browser. Eine solche Transformation wird als Rendering bezeichnet. Auch nach dem Rendern in eine HTML-Datei werden die an die Backing Bean gebundenen HTML-Tags wie unten gezeigt mit dem Namensattribut eingebettet, damit Sie die Entsprechung zum internen Komponentenbaum sehen können. Nummer: \ \
Einführung in das leicht verständliche Java EE-Web-System-Hidewa-System
Wenn ** outOfForm ** für den ID-Attributwert von h: inputText
angegeben ist
<h:inputText id="outOfForm" value="Außerhalb des Formular-Tags entspricht die ID den Angaben" />
Der ID-Attributwert von "input" ist ** outOfForm **.
Ausgabe
<input id="outOfForm" type="text" name="outOfForm" value="Außerhalb des Formular-Tags entspricht die ID den Angaben">
Wenn Sie ** inOfForm ** für den ID-Attributwert von h: inputText
angeben, ohne das ID-Attribut des h: form
-Tags anzugeben
<h:form>
<h:inputText id="inOfForm" value="h:Wenn das ID-Attribut nicht im Formular-Tag angegeben ist, wird "automatischer Attributwert" angezeigt.:Es wird "angegebener ID-Attributwert"" />
</h:form>
Der ID-Attributwert von input
ist ** j_idt5: inOfForm **.
Ausgabe
<form id="j_idt5" name="j_idt5" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt5" value="j_idt5">
<input id="j_idt5:inOfForm" type="text" name="j_idt5:inOfForm" value="h:Wenn das ID-Attribut nicht im Formular-Tag angegeben ist, wird "automatischer Attributwert" angezeigt.:Es wird "angegebener ID-Attributwert"">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-6757148234097573315:8183558224686661226" autocomplete="off">
</form>
Wenn Sie ** formId ** für den ID-Attributwert des Tags "h: form" und ** inOfForm ** für den ID-Attributwert von "h: inputText" angeben
<h:form id="formId">
<h:inputText id="inOfForm" value="h:Wenn Sie das ID-Attribut im Formular-Tag angeben, "ID-Attributwert des Formular-Tags":Es wird "angegebener ID-Attributwert"" />
</h:form>
Der ID-Attributwert von input
ist ** formId: inOfForm **.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="formId:inOfForm" type="text" name="formId:inOfForm" value="h:Wenn Sie das ID-Attribut im Formular-Tag angeben, "ID-Attributwert des Formular-Tags":Es wird "angegebener ID-Attributwert"">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="1982632179815695771:1244710352148896782" autocomplete="off">
</form>
prependId Flag indicating whether or not this form should prepend its id to its descendent's id during the clientId generation process. If this flag is not set, the default value is true. JSF 2.2 View Declaration Language: Facelets Variant
(Grobe Übersetzung) Ein Flag, das angibt, ob der ID des Formulars während der ID-Generierung die ID seiner Nachkommen vorangestellt wird. Der Standardwert ist true. Wenn Sie ** formId ** für den ID-Attributwert des Tags "h: form" und ** inOfForm ** für den ID-Attributwert von "h: inputText" angeben
<h:form id="formId" prependId="false">
<h:inputText id="inOfForm" value="h:prependId im Formular-Tag=Wenn false angegeben wird, ist das ID-Attribut der angegebene Wert." />
</h:form>
Der ID-Attributwert von input
ist ** inOfForm **.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="inOfForm" type="text" name="inOfForm" value="h:prependId im Formular-Tag=Wenn false angegeben wird, ist das ID-Attribut der angegebene Wert.">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-3193809963809428842:-8198161006116065679" autocomplete="off">
</form>
Wenn ** inOfRepeat ** für den ID-Attributwert von h: inputText
angegeben ist
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert" />
</ui:repeat>
Der ID-Attributwert von input
ist ** j_idt5: {Indexnummer}: inOfRepeat **.
Ausgabe
<input id="j_idt5:0:inOfRepeat" type="text" name="j_idt5:0:inOfRepeat">
<input id="j_idt5:1:inOfRepeat" type="text" name="j_idt5:1:inOfRepeat">
Wenn Sie ** inOfRepeat {Indexnummer} ** für den ID-Attributwert von h: inputText
angeben, ohne das ID-Attribut des h: form
-Tags anzugeben
<h:form>
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert" />
</ui:repeat>
</h:form>
Der ID-Attributwert von input
ist ** j_idt5: j_idt9: {Indexnummer}: inOfRepeat **.
Ausgabe
<form id="j_idt5" name="j_idt5" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt5" value="j_idt5">
<input id="j_idt5:j_idt9:0:inOfRepeat" type="text" name="j_idt5:j_idt9:0:inOfRepeat">
<input id="j_idt5:j_idt9:1:inOfRepeat" type="text" name="j_idt5:j_idt9:1:inOfRepeat">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="8291831575234858658:4144786523139149206" autocomplete="off">
</form>
Wenn Sie ** formId ** für den ID-Attributwert des Tags "h: form" und ** inOfRepeat {Indexnummer} ** für den ID-Attributwert von "h: inputText" angeben
<h:form id="formId">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert" />
</ui:repeat>
</h:form>
Der ID-Attributwert von input
ist ** formId: j_idt9: {Indexnummer}: inOfRepeat **.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="formId:j_idt9:0:inOfRepeat" type="text" name="formId:j_idt9:0:inOfRepeat">
<input id="formId:j_idt9:1:inOfRepeat" type="text" name="formId:j_idt9:1:inOfRepeat">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-9123594053057548780:-7376239985257011779" autocomplete="off">
</form>
Auch wenn Sie im Tag "h: form" "prependId =" false "" angeben
<h:form id="formId" prependId="false">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert" />
</ui:repeat>
</h:form>
Der ID-Attributwert des form
-Tags bleibt einfach nicht erhalten.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="j_idt9:0:inOfRepeat" type="text" name="j_idt9:0:inOfRepeat">
<input id="j_idt9:1:inOfRepeat" type="text" name="j_idt9:1:inOfRepeat">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-915378070197893309:-5208595187307997788" autocomplete="off">
</form>
Hinweis: Es wäre eine Schande, wenn Sie den Wert des ID-Attributs nicht so schreiben, dass er eindeutig ist.
Es ist eine sehr heikle Maßnahme.
Wenn ** inOfRepeat {Indexnummer} ** für den ID-Attributwert von input
angegeben ist
<h:form id="formId">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<input tyep="text" id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert" />
</ui:repeat>
</h:form>
Der ID-Attributwert von input
ist ** inOfRepeat {Indexnummer} **.
Da es sich nicht um eine JSF-Welt handelt, wirkt sich der ID-Attributwert des Tags "h: form" nicht aus, selbst wenn kein "prepareId =" false "vorhanden ist.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input tyep="text" id="inOfRepeat0" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input tyep="text" id="inOfRepeat1" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-3641841499499477715:2017944983286472561" autocomplete="off">
</form>
Hinweis: Es wäre eine Schande, wenn Sie den Wert des ID-Attributs nicht so schreiben, dass er eindeutig ist. Da das JSTL Core-Tag (c :) ein von JSP geerbtes Tag ist, ist es nicht JSF-ähnlich?
Wenn Sie ** formId ** für den ID-Attributwert des Tags "h: form" und ** inOfRepeat {Indexnummer} ** für den ID-Attributwert von "h: inputText" angeben
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"> <!--<<<Nachtrag-->
<h:form id="formId">
<c:forEach var="item" varStatus="stat" items="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert"/>
</c:forEach>
</h:form>
Der ID-Attributwert von input
ist ** formId: inOfRepeat {Indexnummer} **.
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="formId:inOfRepeat0" type="text" name="formId:inOfRepeat0" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input id="formId:inOfRepeat1" type="text" name="formId:inOfRepeat1" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="7276136016284590450:-4018393601695065919" autocomplete="off">
</form>
Wenn Sie den ID-Attributwert des Tags "h: form" nicht anhängen möchten, geben Sie "prepareId =" false "an.
<h:form id="formId" prependId="false">
...Das Gleiche wie vorher...
Ausgabe
<form id="formId" name="formId" method="post" action="/tryJsf/base.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formId" value="formId">
<input id="inOfRepeat0" type="text" name="inOfRepeat0" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input id="inOfRepeat1" type="text" name="inOfRepeat1" value="h:Innerhalb des Formular-Tags ui:Wenn Sie das Wiederholungs-Tag verwenden, entspricht der ID-Attributwert nicht dem angegebenen Wert">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-4294574413761401134:-7748270303136609237" autocomplete="off">
</form>
Recommended Posts