--Environnement - 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
Dans JSF, la valeur d'attribut id peut être sortie sous la forme d'une valeur différente de la valeur utilisée pour xhtml. Le livre décrit l'attribut name, mais l'attribut id peut également être capable de comprendre la correspondance avec l'arbre des composants.
FacesServlet génère un fichier HTML à partir de l'arborescence des composants et l'envoie au navigateur. Une telle transformation est appelée rendu. Même après le rendu dans un fichier HTML, les balises HTML liées au backing bean sont intégrées avec l'attribut name comme indiqué ci-dessous afin que vous puissiez voir la correspondance avec l'arborescence des composants internes. Numéro: \ \
Introduction au système Web Java EE facile à comprendre - Hidewa System
Si ** outOfForm ** est spécifié pour la valeur d'attribut id de h: inputText
<h:inputText id="outOfForm" value="En dehors de la balise de formulaire, l'ID sera tel que spécifié" />
La valeur de l'attribut id de ʻinput` est ** outOfForm **.
production
<input id="outOfForm" type="text" name="outOfForm" value="En dehors de la balise de formulaire, l'ID sera tel que spécifié">
Si vous spécifiez ** inOfForm ** pour la valeur d'attribut id de h: inputText
sans spécifier l'attribut id de la balise h: form
<h:form>
<h:inputText id="inOfForm" value="h:Si l'attribut id n'est pas spécifié dans la balise de formulaire, "valeur d'attribut automatique":Il devient "valeur d'attribut d'ID spécifié"" />
</h:form>
La valeur d'attribut id de ʻinput` est ** j_idt5: inOfForm **.
production
<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:Si l'attribut id n'est pas spécifié dans la balise de formulaire, "valeur d'attribut automatique":Il devient "valeur d'attribut d'ID spécifié"">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-6757148234097573315:8183558224686661226" autocomplete="off">
</form>
Si vous spécifiez ** formId ** pour la valeur d'attribut id de la balise h: form
et ** inOfForm ** pour la valeur d'attribut id de h: inputText
<h:form id="formId">
<h:inputText id="inOfForm" value="h:Si vous spécifiez l'attribut id dans la balise form, "valeur d'attribut id de la balise form":Il devient "valeur d'attribut d'ID spécifié"" />
</h:form>
La valeur de l'attribut id de ʻinput` est ** formId: inOfForm **.
production
<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:Si vous spécifiez l'attribut id dans la balise form, "valeur d'attribut id de la balise form":Il devient "valeur d'attribut d'ID spécifié"">
<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
Un indicateur qui indique si l'ID de formulaire est précédé de ses ID descendants lors de la génération d'ID. La valeur par défaut est true.
Si vous spécifiez ** formId ** pour la valeur d'attribut id de la balise h: form
et ** inOfForm ** pour la valeur d'attribut id de h: inputText
<h:form id="formId" prependId="false">
<h:inputText id="inOfForm" value="h:prependId dans la balise form=Si false est spécifié, l'attribut id aura la valeur spécifiée." />
</h:form>
La valeur d'attribut id de ʻinput` est ** inOfForm **.
production
<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 dans la balise form=Si false est spécifié, l'attribut id aura la valeur spécifiée.">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-3193809963809428842:-8198161006116065679" autocomplete="off">
</form>
Si ** inOfRepeat ** est spécifié pour la valeur d'attribut id de h: inputText
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée" />
</ui:repeat>
ʻLa valeur d'attribut id de l'entrée` est ** j_idt5: {numéro d'index}: inOfRepeat **.
production
<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">
Si vous spécifiez ** inOfRepeat {numéro d'index} ** dans la valeur d'attribut id de h: inputText
sans spécifier l'attribut id de la balise h: form
<h:form>
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée" />
</ui:repeat>
</h:form>
«La valeur d'attribut id de l'entrée» est ** j_idt5: j_idt9: {numéro d'index}: inOfRepeat **.
production
<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>
Si vous spécifiez ** formId ** pour la valeur d'attribut id de la balise h: form
et ** inOfRepeat {numéro d'index} ** pour la valeur d'attribut id de h: inputText
<h:form id="formId">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée" />
</ui:repeat>
</h:form>
ʻLa valeur d'attribut id de l'entrée` est ** formId: j_idt9: {numéro d'index}: inOfRepeat **.
production
<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>
Même si vous spécifiez prependId =" false "
dans la balise h: form
<h:form id="formId" prependId="false">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée" />
</ui:repeat>
</h:form>
La valeur d'attribut id de la balise form
ne colle tout simplement pas.
production
<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>
Remarque: c'est dommage si vous n'écrivez pas la valeur de l'attribut id pour qu'elle soit unique. C'est une mesure très délicate. Si ** inOfRepeat {numéro d'index} ** est spécifié pour la valeur d'attribut id de ʻinput`
<h:form id="formId">
<ui:repeat var="item" varStatus="stat" value="#{idBean.array}">
<input tyep="text" id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée" />
</ui:repeat>
</h:form>
La valeur de l'attribut id de ʻinputest ** inOfRepeat {numéro d'index} **. Puisqu'il est hors du monde JSF, la valeur d'attribut id de la balise
h: form n'affecte pas même s'il n'y a pas
prepareId =" false "`.
production
<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:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input tyep="text" id="inOfRepeat1" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-3641841499499477715:2017944983286472561" autocomplete="off">
</form>
Remarque: c'est dommage si vous n'écrivez pas la valeur de l'attribut id pour qu'elle soit unique. Puisque la balise JSTL Core (c :) est une balise héritée de JSP, n'est-elle pas de type JSF?
Si vous spécifiez ** formId ** pour la valeur d'attribut id de la balise h: form
et ** inOfRepeat {numéro d'index} ** pour la valeur d'attribut id de h: inputText
<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"> <!--<<<Postscript-->
<h:form id="formId">
<c:forEach var="item" varStatus="stat" items="#{idBean.array}">
<h:inputText id="inOfRepeat#{stat.index}" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée"/>
</c:forEach>
</h:form>
La valeur de l'attribut id de ʻinput` est ** formId: inOfRepeat {numéro d'index} **.
production
<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:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input id="formId:inOfRepeat1" type="text" name="formId:inOfRepeat1" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="7276136016284590450:-4018393601695065919" autocomplete="off">
</form>
Si vous ne voulez pas attacher la valeur d'attribut id de la balise h: form
, spécifiez prepareId =" false "
.
<h:form id="formId" prependId="false">
...Pareil qu'avant...
production
<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:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input id="inOfRepeat1" type="text" name="inOfRepeat1" value="h:À l'intérieur de la balise de formulaire ui:Si vous utilisez la balise de répétition, la valeur d'attribut id ne sera pas la valeur spécifiée">
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-4294574413761401134:-7748270303136609237" autocomplete="off">
</form>
Recommended Posts