Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
helloworld:web:java:jsp_jstl_el [2020/04/26 20:22] – mhtml -> html root | helloworld:web:java:jsp_jstl_el [2020/04/26 20:27] (Version actuelle) – Don't convert '' to “ root |
---|
Une page ''JSP'' avec l'utilisation de la librairie ''JSTL'' et des ''EL'' (Element Language) utilise du code ''HTML'' dans lequel est mis des tags provenant de la librairie ''JSTL''. Ce sont ces tags qui appellent les fonctions ''Java''. Le code généré par les appels aux fonctions ''JSP'' et ''JSTL'' est du ''HTML 4.01''. | Une page ''JSP'' avec l'utilisation de la librairie ''JSTL'' et des ''EL'' (Element Language) utilise du code ''HTML'' dans lequel est mis des tags provenant de la librairie ''JSTL''. Ce sont ces tags qui appellent les fonctions ''Java''. Le code généré par les appels aux fonctions ''JSP'' et ''JSTL'' est du ''HTML 4.01''. |
| |
<note>Tous les exemples ci-dessous utilisent le [[helloworld:design_pattern:bean:java|BeanPersonne]] ainsi que la librairie JSTL 2 qui supportent les EL.</note> | <WRAP center round info 60%> |
| Tous les exemples ci-dessous utilisent le [[helloworld:design_pattern:bean:java|BeanPersonne]] ainsi que la librairie JSTL 2 qui supportent les EL. |
| </WRAP> |
| |
=====Cycle de vie===== | =====Cycle de vie===== |
| |
=====Syntaxe===== | =====Syntaxe===== |
''<c:out value="{2+4}" default="6" />'' : affiche le résultat de l'expression ''2+4''. Si l'évaluation échoue, la valeur par défaut sera affichée. Cette balise échappe aussi les caractères spéciaux (&, <, >, …). | ''%%<c:out value="{2+4}" default="6" />%%'' : affiche le résultat de l'expression ''2+4''. Si l'évaluation échoue, la valeur par défaut sera affichée. Cette balise échappe aussi les caractères spéciaux (&, <, >, …). |
| |
''<c:set var="somme" value=${2+4} />'' : définie une variable. | ''%%<c:set var="somme" value=${2+4} />%%'' : définie une variable. |
| |
''<c:if test="${EL}">…</c:if>'' : test conditionnel. Il n'existe pas de else. Pour en simuler un, il faut passer par la balise ''choose'' avec sa sous-balise ''otherwise''. | ''%%<c:if test="${EL}">…</c:if>%%'' : test conditionnel. Il n'existe pas de else. Pour en simuler un, il faut passer par la balise ''choose'' avec sa sous-balise ''otherwise''. |
| |
''<c:choose><c:when test="${EL}">…</c:when><c:otherwise>…</c:otherwise></c:choose>'' : équivalent à ''switch'', ''case'', ''default''. | ''%%<c:choose><c:when test="${EL}">…</c:when><c:otherwise>…</c:otherwise></c:choose>%%'' : équivalent à ''switch'', ''case'', ''default''. |
<code xml> | <code xml> |
<c:choose> | <c:choose> |
</code> | </code> |
| |
''<c:url value="/urlbase/"><c:param name="param" value="valeur" /></c:url>'' : ajout avant la base l'équivalent d'un ''#{pageContext.request.contextPath}''. Le rendu sera, par exemple : ''/jstl/urlbase/?param=valeur'' et le lien renverra alors vers ''http://localhost:8080/jstl/urlbase/?param=valeur''. | ''%%<c:url value="/urlbase/"><c:param name="param" value="valeur" /></c:url>%%'' : ajout avant la base l'équivalent d'un ''#{pageContext.request.contextPath}''. Le rendu sera, par exemple : ''/jstl/urlbase/?param=valeur'' et le lien renverra alors vers ''http://localhost:8080/jstl/urlbase/?param=valeur''. |
| |
=====Exemple 1 - La base===== | =====Exemple 1 - La base===== |
<note important>Bien importer la JSTL 1.2 (et 1.1) avec ''uri="http://java.sun.com/jsp/jstl/core"'' et non pas la JSTL 1.0 qui s'importe avec ''uri="http://java.sun.com/jstl/core"''. [[http://stackoverflow.com/questions/13285826/can-not-find-the-tag-library-descriptor-for-http-java-sun-com-jsp-jstl-core|Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core”]] {{ :helloworld:web:java:jsp_jstl_el:eclipse_-_can_not_find_the_tag_library_descriptor_for_http_java.sun.com_jsp_jstl_core_-_stack_overflow_2020-04-26_8_15_17_pm_.html |Archive du 08/11/2012 le 26/04/2020}}</note> | <WRAP center round important 60%> |
| Bien importer la JSTL 1.2 (et 1.1) avec ''%%uri="http://java.sun.com/jsp/jstl/core"%%'' et non pas la JSTL 1.0 qui s'importe avec ''%%uri="http://java.sun.com/jstl/core"%%''. [[http://stackoverflow.com/questions/13285826/can-not-find-the-tag-library-descriptor-for-http-java-sun-com-jsp-jstl-core|Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core”]] {{ :helloworld:web:java:jsp_jstl_el:eclipse_-_can_not_find_the_tag_library_descriptor_for_http_java.sun.com_jsp_jstl_core_-_stack_overflow_2020-04-26_8_15_17_pm_.html |Archive du 08/11/2012 le 26/04/2020}} |
| </WRAP> |
<file xml indexjsp-jstl.jsp> | <file xml indexjsp-jstl.jsp> |
<%@ page language="java" contentType="text/html; charset=UTF-8" | <%@ page language="java" contentType="text/html; charset=UTF-8" |
</html> | </html> |
</file> | </file> |
<note warning>Il se semble pas possible de pouvoir accéder aux ''init-param'' qui sont contenus dans le bloc ''servlet'' sans passer par des ''scriptlets''. Il convient donc d'utiliser de préférence les ''context-param'' qui sont accessibles via ''initParam['nom']'' [[https://coderanch.com/wiki/660120/Init-Params-Expression-Language|Init Params Thru Expression Language]] {{ :helloworld:web:java:jsp_jstl_el:init_params_thru_expression_language_wiki_forum_at_coderanch_2020-04-26_8_20_42_pm_.html |Archive du 03/01/2016 le 26/04/2020}}.</note> | |
| <WRAP center round alert 60%> |
| Il se semble pas possible de pouvoir accéder aux ''init-param'' qui sont contenus dans le bloc ''servlet'' sans passer par des ''scriptlets''. Il convient donc d'utiliser de préférence les ''context-param'' qui sont accessibles via ''initParam['nom']'' [[https://coderanch.com/wiki/660120/Init-Params-Expression-Language|Init Params Thru Expression Language]] {{ :helloworld:web:java:jsp_jstl_el:init_params_thru_expression_language_wiki_forum_at_coderanch_2020-04-26_8_20_42_pm_.html |Archive du 03/01/2016 le 26/04/2020}}. |
| </WRAP> |
| |
Rendu : | Rendu : |