[Servlet Java] La route de Senri est aussi la cinquième étape d'une étape

Le progrès

--Passer des paramètres entre jsp ⇔ servlet

Que faire cette fois

Utilisons le type EL

L'expression EL (Expression Language) est une méthode qui vous permet de décrire brièvement le passage des paramètres de requête du côté jsp. Écrivez simplement $ {nom du paramètre}. (Dans le cas d'un objet, $ {nom du paramètre.nom de la propriété})

Lors de la réception et de l'affichage du paramètre nommé nom du côté jsp,

mypage.jsp(jusqu'à maintenant)


<%
  String username=request.getAttribute("name").toString();
%>
<%=username%>Bienvenue

J'étais en train de suivre un processus en deux étapes, mais quand j'ai utilisé la formule EL

mypage.jsp


${name}Bienvenue

Ecrivez. La quantité de description est réduite et elle est plus facile à voir, mais le plus grand mérite est que vous n'avez pas à écrire la logique de java. Il est également possible d'écrire une expression simple telle que $ {age> 20}, car elle est étiquetée avec EL "expression".

Utilisons la balise JSTL

Les expressions EL peuvent être utilisées dans la section précédente, mais les traitements tels que les boucles et le branchement conditionnel doivent être incorporés avec du code java. C'est là que la bibliothèque de balises appelée JSTL entre en jeu. Une bibliothèque de balises est un groupe de fichiers qui peuvent exprimer la logique Java en utilisant des balises comme HTML, telles que <forEach>.

Méthode d'introduction

JSTL est une bibliothèque open source gratuite fournie par Apache.

    1. Ouvrez le lien ci-dessus et téléchargez ʻimpl, spec, jstl` à partir des fichiers jar au bas de la page.
  1. Stockez les trois fichiers jar ci-dessus dans WEB-INF / lib du dossier du projet.
    1. Décrivez ce qui suit dans le fichier jsp.

mypage.jsp


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  1. Si la version d'application de web.xml est 3.0 ou supérieure, réécrivez-la en 2.4. (Je l'ai fait en 3.1 dans ce coin, mais il semble que la formule EL ne puisse pas être utilisée dans JSTL après 2.4. Inconvénient!)

web.xml


<!-- 3.1 est commenté-->
<!--
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID"
version="3.1">
-->
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

À propos, la méthode de description de la balise d'application Web pour chaque version d'application est décrite en détail sur le site suivant. KATSUMI KOKUZAWA'S BLOG

Comment utiliser

--if instruction

mypage.jsp


  <c:choose>
    <c:when test="${name == 'hato'}">Monsieur l'administrateur, bonjour</c:when>
    <c:when test="${name == ''}">Anonyme, bonjour</c:when>
    <c:otherwise>Utilisateur général, Bonjour</c:when>
  </c:choose>
marque élément Contenu
choose - Le contenu inclus dans cette balise est une série de blocs d'instructions if.
when - Équivaut à if else dans une instruction if.
when item Si cet élément est vrai, la partie incluse dans la balise est exécutée.
otherwise - Équivalent à else of if instruction. Exécuté quand il n'y a aucun coup nulle part dans quand.

--pour déclaration

LoginServlet.java


List<String> list=Arrays.asList("one","two","three","four");
req.setAttribute("list",list);

mypage.jsp



<c:forEach var="v" items="${list}" varStatus="list">
	${v} ${list.count}
	<!--
	one 1
	two 2
	three 3
	four 4
Les sorties
	-->
</c:forEach>

<c:forEach begin="1" end="7" step="2" varStatus="c">
	hello ${c.count}
	<!--
	hello 1
	hello 2
	hello 3
Les sorties
	-->
</c:forEach>
marque élément Contenu
forEach var Variables qui accèdent aux éléments extraits des éléments
items Spécifiez une collection (écrivez généralement une expression EL)
varStatus Variables qui accèdent à l'état répétitif (comme le nombre de boucles)
begin Position de départ de la boucle
end Position de fin de boucle
step Augmenter le montant (essentiellement 1)

Ce qui précède pour chacun est une instruction étendue pour

exFor.java


for(String item:list){
  System.out.println(item);
}

Le for Each ci-dessous est une instruction for ordinaire

For.java


for(int i=1;i<=7;i=i+2){
  System.out.println("hello"+i);
}

Il est facile à retenir car le comportement est similaire à.

À propos des autres balises

Il existe d'autres bibliothèques de base telles que <c: param> et <c: set>, mais elles sont trop longues à expliquer, donc je les omettrai. De plus, il existe de nombreuses bibliothèques telles que «format» et «xml».

Résumé

--Avancé de <% request.getAttribute (" hogehoge ");%> avec expression EL

Recommended Posts

[Servlet Java] La route de Senri est aussi la cinquième étape d'une étape
[Servlet Java] La route de Senri est aussi la troisième étape de la première étape
[Servlet Java] La route de Senri est aussi la quatrième étape de la première étape
[Servlet Java] La route de Senri est également une étape vers la première
[Servlet Java] La route de Senri est aussi la deuxième étape de la première étape
La route de JavaScript à Java
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
[Promotion de la compréhension de Ruby (1)] Lorsque vous passez de Java à Ruby, commencez par comprendre la différence.
Qu'est-ce que le modèle Java Servlet / JSP MVC?
L'ordre des modificateurs de méthode Java est fixe
L'histoire de l'apprentissage de Java dans la première programmation
[Java] Calculer le jour à partir de la date (ne pas utiliser la classe Calendar)
Première touche de la classe Files (ou Java 8)
Comment écrire Scala du point de vue de Java
La comparaison d'énumération est ==, et equals est bonne [Java]
Langage Java du point de vue de Kotlin et C #
L'histoire que .java est également construite dans Unity 2018
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
Java: dont le problème est plus rapide, en flux ou en boucle
Road to Java Engineer Part2 Quel type de langage est Java?
[Java] Supprimer le nombre spécifié de caractères à la fin de StringBuilder
[Java] Je me sentais comme un débutant en java. "Pourquoi le premier caractère est-il en majuscule uniquement dans le type String?" J'ai fait face au type String.
[Java débutant] Conversion d'une chaîne de caractères en valeur numérique - Quelle est la méthode parseInt de la classe Integer? ~
[Java] Compréhension débutante de Servlet-②
[Java] Compréhension débutante de Servlet-①
Ceci est le premier message.
5ème jour de Java
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
[Swift] La couleur de NavigationBar est différente (plus claire) de la couleur spécifiée.
La version d'Elasticsearch que vous utilisez est-elle compatible avec Java 11?
Méthode d'enquête lorsque le processeur du serveur exécutant java est lourd
Résumons la grammaire Java 8 du point de vue des ingénieurs iOS