--Passer des paramètres entre jsp ⇔ servlet
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".
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>
.
JSTL est une bibliothèque open source gratuite fournie par Apache.
WEB-INF / lib
du dossier du projet.mypage.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
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
--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 à.
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».
--Avancé de <% request.getAttribute (" hogehoge ");%>
avec expression EL
<% if (~)%>
et <% for (~)%>
dans JSTL
Si vous voulez que cela soit pratique, vous aurez certainement besoin de javascript, mais en utilisant pleinement les expressions EL et JSTL, vous n'avez pas besoin d'écrire de la logique java et vous pouvez simplifier le fichier jsp.Recommended Posts