[Java Servlet] Die Straße von Senri ist auch der fünfte Schritt von einem Schritt

Fortschritt

--Passing-Parameter zwischen jsp ⇔ Servlet

Was ist diesmal zu tun?

--EL Typ --JSTL-Tag

Verwenden wir den EL-Typ

Der EL-Ausdruck (Expression Language) ist eine Methode, mit der Sie die Übergabe von Anforderungsparametern auf der JSP-Seite kurz beschreiben können. Schreiben Sie einfach "$ {Parametername}". (Im Fall eines Objekts $ {Parametername.Eigenschaftsname})

Wenn Sie den Parameter "name" auf der JSP-Seite empfangen und anzeigen,

mypage.jsp(bis jetzt)


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

Ich habe einen zweistufigen Prozess durchlaufen, aber als ich die EL-Formel verwendet habe

mypage.jsp


${name}Herzlich willkommen

Einfach schreiben. Die Menge der Beschreibung wird reduziert und ist leichter zu erkennen, aber der größte Vorteil ist, dass Sie die Logik von "Java" nicht schreiben müssen. Es ist auch möglich, einen einfachen Ausdruck wie $ {age> 20} zu schreiben, da dieser mit EL "expression" gekennzeichnet ist.

Verwenden wir das JSTL-Tag

EL-Ausdrücke können im vorherigen Abschnitt verwendet werden, aber die Verarbeitung wie Schleifen und bedingte Verzweigung muss mit Java-Code eingebettet werden. Hier kommt die "Tag Library" namens "JSTL" ins Spiel. Eine Tag-Bibliothek ist eine Gruppe von Dateien, die Java-Logik mithilfe von Tags wie HTML wie "" ausdrücken können.

Einführungsmethode

JSTL ist eine kostenlose Open Source-Bibliothek, die von Apache bereitgestellt wird.

    1. Öffnen Sie den obigen Link und laden Sie "impl, spec, jstl" aus den JAR-Dateien am Ende der Seite herunter.
  1. Speichern Sie die oben genannten drei JAR-Dateien in WEB-INF / lib des Projektordners.
    1. Beschreiben Sie Folgendes in der JSP-Datei.

mypage.jsp


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  1. Wenn die App-Version von "web.xml" 3.0 oder höher ist, schreiben Sie sie auf 2.4. (Ich habe es in 3.1 in dieser Ecke geschafft, aber es scheint, dass die EL-Formel nach 2.4 nicht mehr in JSTL verwendet werden kann. Unbequem!)

web.xml


<!-- 3.1 ist auskommentiert-->
<!--
<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">

Die Beschreibungsmethode des Web-App-Tags für jede App-Version wird übrigens auf der folgenden Website ausführlich beschrieben. KATSUMI KOKUZAWA'S BLOG

Wie benutzt man

--if Aussage

mypage.jsp


  <c:choose>
    <c:when test="${name == 'hato'}">Herr Administrator, Hallo</c:when>
    <c:when test="${name == ''}">Anonym, Hallo</c:when>
    <c:otherwise>Allgemeiner Benutzer, Hallo</c:when>
  </c:choose>
Etikett Element Inhalt
choose - Der in diesem Tag enthaltene Inhalt besteht aus einer Reihe von if-Anweisungsblöcken.
when - Entspricht if else in einer if-Anweisung.
when item Wenn dieses Element wahr ist, wird der im Tag enthaltene Teil ausgeführt.
otherwise - Entspricht der if-Anweisung. Wird ausgeführt, wenn kein Treffer in wann erfolgt.

--für Aussage

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
Ausgänge
	-->
</c:forEach>

<c:forEach begin="1" end="7" step="2" varStatus="c">
	hello ${c.count}
	<!--
	hello 1
	hello 2
	hello 3
Ausgänge
	-->
</c:forEach>
Etikett Element Inhalt
forEach var Variablen, die auf die aus Elementen abgerufenen Elemente zugreifen
items Geben Sie eine Sammlung an (schreiben Sie normalerweise einen EL-Ausdruck).
varStatus Variablen, die auf den Wiederholungsstatus zugreifen (z. B. die Anzahl der Schleifen)
begin Startposition der Schleife
end Endposition der Schleife
step Menge erhöhen (grundsätzlich 1)

Das obige für Each ist eine erweiterte for-Anweisung

exFor.java


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

Das für jedes unten ist eine gewöhnliche for-Anweisung

For.java


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

Es ist leicht zu merken, weil das Verhalten ähnlich ist.

Über andere Tags

Es gibt andere Kernbibliotheken wie "<c: param>" und "<c: set>", aber sie sind zu lang, um sie zu erklären, daher werde ich sie weglassen. Darüber hinaus gibt es zahlreiche Bibliotheken wie "Format" und "XML".

Zusammenfassung

--Graduiert von <% request.getAttribute (" hogehoge ");%> mit EL-Ausdruck --Graduiert von <% if (~)%> und <% für (~)%> in JSTL Wenn Sie es praktisch machen möchten, benötigen Sie auf jeden Fall Javascript. Wenn Sie jedoch EL-Ausdrücke und JSTL vollständig nutzen, müssen Sie keine Java-Logik schreiben und die JSP-Datei vereinfachen.

Recommended Posts

[Java Servlet] Die Straße von Senri ist auch der fünfte Schritt von einem Schritt
[Java Servlet] Die Straße von Senri ist auch der dritte Schritt vom ersten Schritt
[Java Servlet] Die Straße von Senri ist auch der vierte Schritt vom ersten Schritt
[Java Servlet] Die Straße von Senri ist auch ein Schritt zum ersten
[Java Servlet] Die Straße von Senri ist auch der zweite Schritt vom ersten Schritt
Der Weg von JavaScript nach Java
Ab Java9 werden Klassenkonstruktoren, die primitiven Typen entsprechen, als veraltet markiert.
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Was ist das Java Servlet / JSP MVC-Modell?
Die Reihenfolge der Java-Methodenmodifikatoren ist festgelegt
Die Geschichte des Lernens von Java in der ersten Programmierung
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)
Erster Touch der Files-Klasse (oder Java 8)
Wie schreibe ich Scala aus der Perspektive von Java
Der Vergleich von enum ist == und gleich ist gut [Java]
Java-Sprache aus der Sicht von Kotlin und C #
Die Geschichte, dass .java auch in Unity 2018 erstellt wurde
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
Java: Das Problem ist schneller, Stream oder Loop
Road to Java Engineer Part2 Was für eine Sprache ist Java?
[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder
[Java] Ich fühlte mich als Java-Anfänger. "Warum wird das erste Zeichen nur im String-Typ großgeschrieben?" Ich sah mich dem String-Typ gegenüber.
[Java-Anfänger] Konvertierung von Zeichenfolge in numerischen Wert - Was ist die parseInt-Methode der Integer-Klasse? ~
[Java] Anfängerverständnis von Servlet-②
[Java] Anfängerverständnis von Servlet-①
Dies ist der erste Beitrag.
5. Tag von Java
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
[Swift] Die Farbe der Navigationsleiste unterscheidet sich (heller) von der angegebenen Farbe.
Ist die von Ihnen verwendete Version von Elasticsearch mit Java 11 kompatibel?
Untersuchungsmethode, wenn die CPU des Servers, auf dem Java ausgeführt wird, schwer ist
Lassen Sie uns die Java 8-Grammatik aus der Sicht der iOS-Ingenieure zusammenfassen