[JAVA] Réintroduction à JSTL

introduction

Il est pratique d'utiliser JSTL lors de l'écriture de dessins avec JSP, qui a une longue histoire. JSTL est une bibliothèque de balises standard Java Server Pages.

Si vous utilisez <% xxx%>, vous ne pouvez pas organiser le format JSP etc. de manière hiérarchique, donc la maintenabilité est médiocre. Pour les JSP complexes, divisez le fichier JSP et utilisez la balise de base JSTL pour faciliter la compréhension des branchements, LOOP, etc.

Expression EL (langage d'expression)

Les expressions EL sont décrites à l'aide des balises $ {~}.

Exemple de calcul simple: $ {100 + 200 * 30}, $ {" 1 "eq" 1 "?" True ":" False "} pageContext, request Exemple: $ {user.userName}, $ {count} Exemple de session: $ {sessionScope.user.userName} Exemple de paramètre initial: $ {initParam [" param1 "]} Exemple de cookie: $ {cookie [" param1 "]. Value} Exemple d'en-tête: $ {header ['user-agent']}

Comment rédiger des comparaisons fréquemment utilisées 1, égal: $ {a eq b} 2, différent de: $ {a ne b} 3、Not:${not a} 4、Empty:${empty a} 5、Not Empty:${not empty a} 6, supérieur à: $ {a gt b} 7, inférieur à: $ {a lt b} 8 ou plus: $ {a ge b} 9, ci-dessous: $ {a le b}

Lors de l'écriture dans une expression EL, il est nécessaire de la définir.

Exemple NG

String data = "C'est un test.";

<%= data %>  // OK

<c:out value=${data} /> //NG. la variable de données est une demande,Parce qu'il n'est pas défini dans pageContext, etc.

OK exemple

String data = "C'est un test.";

pageContext.setAttribute("data", data);

<%= data %>  // OK

<c:out value=${data} /> // OK

Bibliothèque de balises utilisable

type La description
core forEach, if, référence de variable/Balises de base telles que les paramètres
fmt Formats de nombre et de date, etc.
xml Analyse de document XML, feuille de style XSL
functions Fonctions générales de chaîne (contient, etc.)
sql Fonctions qui émettent du SQL et exploitent la base de données

Les fichiers core, function, fmt sont fréquemment utilisés.

balise principale

introduction

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

marque

marque La description
c:set Définir des variables
c:remove Supprimer la variable
c:out production
c:if instruction if (branche conditionnelle unique)
c:choose, c:when, c:otherwise if-else,if-elseif-instruction else (plusieurs branches conditionnelles)
c:forEach boucle
c:forTokens Diviser la chaîne avec un délimiteur
c:import Importer le fichier
c:redirect réorienter
c:url Générer une URL
c:catch Gestion des exceptions
c:param Spécifiez les paramètres

Exemple d'utilisation

<c:set var="score" value="80" />

<c:choose>
	<c:when test=${score gt 90}>
		<c:out value="très impressionnant." />
	</c:when>
	<c:when test=${score gt 80}>
		<c:out value="C'est excellent." />
	</c:when>
	<c:otherwise>
		<c:out value="S'il vous plaît faites de votre mieux." />
	</c:otherwise>
</c:choose>

balise fmt

introduction

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

marque

marque La description
fmt:formatNumber Formater les données numériques
fmt:formatDate Mettre en forme les données de date
fmt:parseNumber Convertir des chaînes de caractères en données numériques
fmt:parseDate Convertir une chaîne de caractères en données de date
fmt:bundle, fmt:message Obtenir un message pour la ressource
fmt:requestEncording> Définir le codage des caractères de la demande
fmt:setLocale Définir les paramètres régionaux
fmt:setTimeZone Définir le fuseau horaire
fmt:timeZone Définir le fuseau horaire

Exemple d'utilisation: format de date

<fmt:formatDate value="${data.updateDate}" pattern="yyyy/MM/dd HH:mm"/>

balise de fonctions

introduction

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

marque

marque La description
fn:contains() Contient-il la chaîne de caractères spécifiée?
fn:containsIgnoreCase() Contient-il la chaîne de caractères spécifiée (insensible à la casse)
fn:endsWith() La dernière chaîne de caractères est-elle une chaîne de caractères spécifiée?
fn:escapeXml() échapper
fn:indexOf() Renvoie l'index de la chaîne spécifiée. Si ça n'existe pas-1
fn:trim() Supprimer les espaces avant et après la chaîne
fn:startsWith() La chaîne de caractères initiale est-elle une chaîne de caractères spécifiée?
fn:split() Fractionner par chaîne de caractères spécifiée
fn:toLowerCase() Convertir en minuscules
fn:toUpperCase() Convertir en majuscules
fn:substring() Extraire la chaîne de caractères dans la plage spécifiée
fn:substringAfter() Extraire après la chaîne de caractères spécifiée
fn:substringBefore() Extraire avant la chaîne de caractères spécifiée
fn:length() Renvoie la longueur de la chaîne
fn:replace() Remplacement

Exemple d'utilisation

<c:set var="favs" value="Circer, lecture" />

<c:out value="${fn:contains(favs, 'en train de lire') ? 'en train de lireが大好きです。' : 'en train de lireに興味がありません。' }"></c:out>

sql

introduction

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

Détails: https://www.javatpoint.com/jstl-sql-tags

xml

introduction

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

Détails: https://www.javatpoint.com/jstl-xml-tags

c'est tout

Recommended Posts

Réintroduction à JSTL
à_ ○
Passer de JSP + JSTL à Thymeleaf
Réintroduction aux opérateurs avec RxJava Partie 1
Association (1 à 1)! !!