JSTL-Tutorial (JSP Standard Tag Library): Core & Beispiele für benutzerdefinierte Tags

Inhaltsverzeichnis:

Anonim

JSTL ist eine Standard-Tag-Bibliothek der JSP. Hier werden wir sehen, wie die Verwendung verschiedener JSTL-Tags die JSP-Codierung erleichtert.

In diesem Tutorial lernen Sie:

  • Was ist JSTL?
  • JSTL Core
  • Benutzerdefinierte JSP-Tags

Was ist JSTL?

JSTL steht für Java Server Pages Standard-Tag-Bibliothek und ist eine Sammlung von benutzerdefinierten JSP-Tag-Bibliotheken, die allgemeine Webentwicklungsfunktionen bieten.

Vorteile von JSTL

  1. Standard-Tag : Es bietet einen umfassenden Überblick über die portablen Funktionen von JSP-Seiten. Für einen Entwickler ist es einfach, den Code zu verstehen.
  2. Code ordentlich und sauber : Da Scriplets den Entwickler verwirren, macht die Verwendung von JSTL den Code ordentlich und sauber.
  3. Automatische Unterstützung für JavabeansInterospection : JSTL bietet gegenüber JSP-Scriptlets den Vorteil. Die Sprache JSTL Expression verarbeitet JavaBean-Code sehr einfach. Wir müssen die Objekte, die als Gültigkeitsbereichsattribute abgerufen wurden, nicht herunterwerfen. Die Verwendung von JSP-Scriptlets-Code wird kompliziert, und JSTL hat diesen Zweck vereinfacht.
  4. Einfacher für Menschen zu lesen : JSTL basiert auf XML, das HTML sehr ähnlich ist. Daher ist es für die Entwickler leicht zu verstehen.
  5. Für Computer leichter zu verstehen : Tools wie Dreamweaver und Startseite generieren immer mehr HTML-Code. HTML-Tools formatieren HTML-Code hervorragend. Der HTML-Code wird mit dem Scriplet-Code gemischt. Da JSTL als XML-kompatible Tags ausgedrückt wird, kann die HTML-Generierung den JSTL-Code im Dokument leicht analysieren.

JSTL Core

Die Kern-Tags sind die am häufigsten verwendeten Tags in JSP. Sie bieten Unterstützung für

  • Wiederholung
  • Bedingte Logik
  • Ausnahme fangen
  • URL vorwärts
  • Weiterleiten usw.

Um Core-Tags zu verwenden, müssen wir zuerst die Tag-Bibliothek definieren. Nachfolgend finden Sie die Syntax, um eine Tag-Bibliothek einzuschließen.

Syntax :

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

Hier,

  • Das Präfix kann verwendet werden, um alle Kern-Tags und zu definieren
  • uri ist die Bibliothek von taglib, aus der es importiert wird

Sehen wir uns einige der wichtigsten Tags im Detail an.

1. Raus:

  • Das Ergebnis des Ausdrucks wird im out-Tag angezeigt
  • Es kann den XML-Tags direkt entkommen. Daher werden sie nicht als tatsächliche Tags ausgewertet

Syntax:

  • Hier stellt der Wert Informationen für die Ausgabe dar und ist obligatorisch
  • Standardmäßig werden keine Informationen ausgegeben, und dies ist nicht obligatorisch
  • EscapeXML - Es ist wahr, wenn XML-Zeichen maskiert werden.

Beispiel:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Core Tag JSP1 </ title></ head><body></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>

<div id="container-5533149ee6411a5f99b370c693e87966"></div>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich und das hinzugefügte Präfix lautet 'c'. Daher kann es als Präfix für alle Coretags verwendet werden.</p>
<p>Codezeile <strong>12:</strong> Hier verwenden wir coretag out mit dem Präfix "c" und dieses out gibt den Wert im Ausdruckstag aus. Daher wird die Ausgabe name sein</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Wir erhalten den Wert als Namen vom Core-Tag "out", das im Ausgabestream gedruckt wird.</li>
</ul>
<h3>2. Fangen</h3>
<ul>
<li>Es fängt jede auslösbare Ausnahme ab, die im Körper auftritt, und wird als Ausgabe angezeigt.</li>
<li>Es wird verwendet, um die Fehler zu behandeln und abzufangen.</li>
</ul>
<p><strong>Syntax:</strong></p>
<pre translate="no"><c:catchvar></pre>
<p>Hier steht var für den Namen der Variablen, die eine auslösbare Ausnahme enthält.</p>
<p><strong>Beispiel:</strong></p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Core Tag JSP2 </ title></ head><body><c: catch var = "guruException"><% int num = 10/0; %></ c: catch>Die Ausnahme ist: $ {guruException}</ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>

<div id="container-5533149ee6411a5f99b370c693e87966"></div>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix ist 'c', daher kann es als Präfix für alle Coretags verwendet werden</p>
<p>Codezeile <strong>11-13:</strong> Coretag catch wird verwendet, um die Ausnahme abzufangen und die Ausnahme zu drucken. Hier wird die Ausnahme ausgelöst, wenn 10/0 und diese Ausnahme den Namen "guruException" hat.</p>
<p>Codezeile <strong>14:</strong> Wir drucken die "guruException".</p>
<p>Wenn Sie den Code ausführen, erhalten Sie die folgende Ausgabe:</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Wir erhalten eine arithmetische Ausnahme als / um Null und sie wird in der Ausgabe mit der Variablen "guruException" gedruckt.</li>
</ul>
<h3>3. Importieren</h3>
<ul>
<li>Wir können den Inhalt einer anderen Datei in eine JSP-Seite importieren, wie wir es in der JSP-Include-Aktion getan haben.</li>
<li>Hier können wir auch URLs angeben und Inhalte werden auf dieser Seite angezeigt.</li>
</ul>
<p><strong>Syntax:</strong></p>
<pre translate="no"><c:importvar uri></pre>
<p>Hier ist var ein Variablenname, der eine Kennung ist, die den Dateinamen / uri enthält.</p>
<p>uri ist ein relativer Dateiname oder Uriname.</p>
<p>coretag_jsp31.jsp</p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Core Tag JSP 31 </ title></ head><body><c: import var = "displayfile" url = "coretag_jsp32.jsp"></ c: import><c: out value = "$ {displayfile}" /></ body></ html></pre>
<p>Coretag_jsp32.jsp</p>

<div id="container-5533149ee6411a5f99b370c693e87966"></div>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Titel hier einfügen </ title></ head><body><a> Die Datei wird nach dem Import angezeigt </a></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p>Coretag_jsp31.jsp</p>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix ist 'c', daher kann es als Präfix für alle Coretags verwendet werden</p>
<p>Codezeile <strong>11-12:</strong> Hier importieren wir die Datei coretag_jsp32.jsp mit dem Import-Tag in diese Datei</p>
<p><strong>Codezeile 13:</strong> Hier drucken wir die Datei coretag_jsp32.jsp mit dem Tag out.</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe.</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Coretag_jsp32 wird in der Ausgabe gedruckt, da diese Datei in coretag_jsp31.jsp importiert wurde.</li>
</ul>
<h3>4. für jeden</h3>
<ul>
<li>Es wird verwendet, um die Anzahl der Elemente in einer Reihe von Anweisungen zu iterieren.</li>
<li>Es ist dasselbe wie ein Java-Forloop.</li>
</ul>
<p><strong>Syntax:</strong></p>
<pre translate="no"><c:forEach var begin end></pre>
<ul>
<li>Hier steht var für den Variablennamen, der den Zählernamen enthält</li>
<li>Begin steht für den Startwert des Zählers</li>
<li>End repräsentiert seinen Endwert</li>
</ul>
<p><strong>Beispiel:</strong></p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Core Tag JSP4 </ title></ head><body><c: forEach var = "gurucount" begin = "5" end = "10"><c: out value = "$ {gurucount}" /></ c: forEach></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix ist 'c', daher kann es als Präfix für alle Coretags verwendet werden</p>
<p>Codezeile <strong>11-13:</strong> Hier verwenden wir die "forEach" -Schleife, in der der Variablenname "gurucount" lautet, der mit 5 beginnt und mit 10 endet. Wir drucken den variablen gurucount mit Zahlen von 5 bis 10.</p>
<p>Wenn Sie den Code ausführen, erhalten Sie die folgende Ausgabe</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Die Ausgabe, die wir erhalten, beginnt bei 5 bis 10.</li>
</ul>
<h3>5. Wenn</h3>
<ul>
<li>Es wird zum Testen von Bedingungen verwendet.</li>
<li>Wenn das Tag verwendet wird, um eine Bedingung zu testen, ob sie wahr ist oder nicht, wird der Codeblock ausgeführt.</li>
</ul>
<p><strong>Syntax:</strong></p>
<pre translate="no"><c:if test="${condition}></c:if></pre>
<p>Wenn hier die Bedingung erfüllt ist, werden eine Reihe von Anweisungen ausgeführt.</p>
<p>Beispiel:</p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Core Tag JSP5 </ title></ head><body><c: setze var = "count" value = "100" /><c: if test = "$ {count == 100}"><c: out value = "Die Anzahl beträgt 100" /></ c: if></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix ist 'c', daher kann es als Präfix für alle Coretags verwendet werden</p>
<p><strong>Codezeile 11:</strong> Hier setzen wir die als count bezeichnete Variable auf 100</p>
<p><strong>Codezeile 12-14:</strong> Hier verwenden wir "if-Bedingung", wo wir prüfen, ob die Anzahl gleich 100 ist. Es ist gleich 100, dann erhalten wir die Ausgabe als "Die Anzahl ist 100".</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Da die "if" -Bedingung wahr ist, erhalten wir die Ausgabe als "The count is 100".</li>
</ul>
<h3>6. Weiterleiten:</h3>
<ul>
<li>Es wird verwendet, um die aktuelle Seite zu einer anderen URL umzuleiten, indem die relative URL dieses Tags angegeben wird.</li>
<li>Es unterstützt kontextbezogene URLs</li>
</ul>
<p><strong>Syntax:</strong></p>
<pre translate="no"><c:redirect url context/></pre>
<p>Hier ist die URL die relative URL, zu der sie umgeleitet werden muss, und der Kontextname der lokalen Webanwendung.</p>
<p><strong>Beispiel:</strong></p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Core Tag JSP6 </ title></ head><body><c: redirect url = "/" /></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p>Codezeile <strong>3:</strong> Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix ist 'c', daher kann es als Präfix für alle Coretags verwendet werden</p>
<p>Codezeile <strong>11:</strong> Hier verwenden wir das "Redirect-Tag", in dem wir den URL-Namen angeben. Wenn wir auf diese Seite klicken, wird auf die Site umgeleitet, die zur Weiterleitung angegeben wurde.</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe;</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Wir erhalten die Ausgabe-URL guru99.com, die von coretag_jsp6.jsp umgeleitet wird</li>
</ul>
<a id="menu-3"></a>
<h2>Benutzerdefinierte JSP-Tags</h2>
<ul>
<li>Es ist ein benutzerdefiniertes JSP-Sprachelement.</li>
<li>Wenn JSP in ein Servlet übersetzt wird, wird ein benutzerdefiniertes Tag in eine Klasse konvertiert, die Aktionen für ein Objekt ausführt und als Tag-Handler aufgerufen wird.</li>
<li>Diese Aktionen werden beim Ausführen des Servlets vom Webcontainer aufgerufen.</li>
<li>Um das benutzerdefinierte benutzerdefinierte Tag zu erstellen, müssen Sie den Tag-Handler erstellen, der den SimpleTagSupport erweitert, und die doTag () -Methode überschreiben.</li>
<li>Wir müssen TLD erstellen, wo wir die Klassendatei in TLD zuordnen müssen.</li>
</ul>
<p><strong>Vorteile von benutzerdefinierten Tags in JSP:</strong></p>
<ul>
<li><strong>Portable</strong> - Eine in einer Tag-Bibliothek beschriebene Aktion muss in jedem JSP-Container verwendbar sein.</li>
<li><strong>Einfach</strong> - Nicht anspruchsvolle Benutzer müssen in der Lage sein, diesen Mechanismus zu verstehen und zu verwenden. Anbieter von JSP-Funktionen müssen es leicht finden, ihn Benutzern als Aktionen zur Verfügung zu stellen.</li>
<li><strong>Ausdrucksstark</strong> - Der Mechanismus muss eine Vielzahl von Aktionen unterstützen, einschließlich verschachtelter Aktionen, Skriptelemente in Aktionskörpern, Erstellung, Verwendung und Aktualisierung von Skriptvariablen.</li>
<li><strong>Verwendbar aus verschiedenen Skriptsprachen</strong> - Obwohl die JSP-Spezifikation derzeit nur die Semantik für Skripte in der Programmiersprache Java definiert, möchten wir die Möglichkeit anderer Skriptsprachen offen lassen.</li>
<li>Aufbauend <strong>auf bestehenden Konzepten und Maschinen</strong> - Wir wollen Whatexisten anderswo nicht neu erfinden. Außerdem möchten wir zukünftige Konflikte vermeiden, wenn wir sie vorhersagen können</li>
</ul>
<p><strong>Syntax:</strong></p>
<p>Angenommen, wir erstellen ein testGuru-Tag und können die Klasse tagethandlertestTag verwenden, die die Methode doTag () überschreibt.</p>
<pre translate="no"><ex:testGuru/>Class testTag extends SimpleTagSupport{ public void doTag()}</pre>
<p>Außerdem müssen wir diese testTag-Klasse in TLD (Tag Library Descriptor) zuordnen, da der JSP-Container automatisch eine Zuordnung zwischen der Klassendatei und uri erstellt, die in der TLD-Datei erwähnt wurde.</p>
<p><strong>JSP-Tag-Schnittstelle</strong></p>
<ul>
<li>Diese Klasse muss die SimpleTagSupport-Klasse erweitern.</li>
<li>Diese Klasse muss die Methode doTag () überschreiben, die Teil der SimpleTagSupport-Klasse ist (Überschreiben ist eine Methode, die von der übergeordneten Klasse geerbt wird).</li>
<li>Diese Schnittstelle ist eine Unterschnittstelle der JSPTag-Schnittstelle.</li>
<li>Es bietet Methoden, die am Anfang und Ende des Tags ausgeführt werden können.</li>
<li>Außerdem müssen wir diese Klasse in TLD, dh dem Tag Library-Deskriptor, zuordnen</li>
</ul>
<p>Wir betrachten im folgenden Beispiel</p>
<p><strong>Methode der Tag-Schnittstelle</strong></p>
<ul>
<li>doTag () ist eine Methode, die wir überschreiben müssen und die den Inhalt für das Tag enthält.</li>
<li>Es nimmt den aktuellen JSP-Kontext mit getJSPContext ()</li>
</ul>
<p><strong>Beispiel:</strong></p>
<p>Customtag_jsp1.jsp</p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; Zeichensatz = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "ex" uri = "WEB-INF / custom.tld"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Benutzerdefiniertes Tag </ title></ head><body><ex: guruTag /></ body></ html></pre>
<p>Custom.tld</p>
<pre translate="no"><taglib><tlib-version> 1.0 </ tlib-version><jsp-version> 2.0 </ jsp-version><Kurzname> TLD testen </ Kurzname><tag><name> guruTag </ name><tag-class> demotest.guruTag </ tag-class><Körperinhalt> leer </ Körperinhalt></ tag></ taglib></pre>
<p>guruTag.java (TagHandler)</p>
<pre translate="no">Paket Demotest;import javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;import java.io. *;public class guruTag erweitert SimpleTagSupport {public void doTag () löst JspException, IOException aus{JspWriter out = getJspContext (). GetOut ();out.println ("Guru Tag");}}}}</pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p>guruTag.java (TagHandler)</p>
<p>Codezeile <strong>6: Die</strong> guruTag-Klasse erweitert die SimpleTagSupport-Klasse, die in der Javax.servlet.JSP-JAR vorhanden ist</p>
<p>Codezeile <strong>7:</strong> Hier überschreiben wir die doTag () -Methode, die JspException und IOException auslöst.</p>
<p>Codezeile <strong>9-10:</strong> Bei dieser Methode wird der Code in ein benutzerdefiniertes Tag eingebettet, das aufgerufen wird. Wir nehmen ein Objekt von JspWriter und das wird "Guru Tag" drucken.</p>
<p>Custom.tld</p>
<p>Codezeile <strong>6:</strong> Hier lautet der Name des benutzerdefinierten Tags "guruTag".</p>
<p>Codezeile <strong>7: Die</strong> Tag-Klasse ist taghandlerclass, dh guruTag.java. Es wird der vollständige Pfad der Handler-Datei verwendet, der den Verzeichnispfad des Speicherorts der Datei enthält.</p>
<p>Customtag_jsp1.jsp</p>
<p>Codezeile <strong>3</strong> : Dieses Taglib-Präfix ist für alle Tags erforderlich. Das hinzugefügte Präfix lautet 'ex'. Daher kann es als Präfix für alle Coretags verwendet werden. Uri ist custom.tld, das den Tag-Handler abbildet.</p>
<p>Codezeile <strong>11:</strong> Hier definieren wir das benutzerdefinierte Tag "guruTag", das die Methode doTag () der Handlerklasse aufruft und den darin enthaltenen Code ausführt.</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Wir erhalten die Ausgabe als "GuruTag" von guruTag.java, dh TagHandler, der die doTag () -Methode überschreibt und "Guru Tag" als Ausgabe druckt.</li>
</ul>
<p><strong>Zusammenfassung:</strong></p>
<ul>
<li>In diesem Abschnitt haben wir die JSP-Standard-Tag-Bibliothek kennengelernt, in der wir Core-Tags und benutzerdefinierte Tags erstellt haben.</li>
<li>Zu den Kern-Tags gehören Umleitungs-Tags, Import-Tags und Catch-Tags, die für grundlegende Zwecke in JSP verwendet wurden.</li>
<li>Außerdem haben wir benutzerdefinierte Tags erstellt, mit denen wir die Tags definieren und in JSP verwenden können</li>
</ul>
										</div>
									</article>
									
<div id="container-5533149ee6411a5f99b370c693e87966"></div>								</div>
							</div>
						</div>
					</div>
				</div>
				
<aside class="col-lg-4 sidebar sidebar--right">
	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Beliebte Beiträge</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8003981-php-ie-detection" title="PHP IE Erkennung - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/7058439/php_ie_detection_css-tricks.png.webp" loading="lazy" alt="PHP IE Erkennung - CSS-Tricks" title="PHP IE Erkennung - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8003981-php-ie-detection" title="PHP IE Erkennung - CSS-Tricks" rel="bookmark">PHP IE Erkennung - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8003982-php-include" title="PHP Include - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/9499780/php_include_css-tricks.png.webp" loading="lazy" alt="PHP Include - CSS-Tricks" title="PHP Include - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8003982-php-include" title="PHP Include - CSS-Tricks" rel="bookmark">PHP Include - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8003983-php-zebra-striping-a-table" title="PHP Zebra Striping a Table - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/4943820/php_zebra_striping_a_table_css-tricks.png.webp" loading="lazy" alt="PHP Zebra Striping a Table - CSS-Tricks" title="PHP Zebra Striping a Table - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8003983-php-zebra-striping-a-table" title="PHP Zebra Striping a Table - CSS-Tricks" rel="bookmark">PHP Zebra Striping a Table - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>

	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Die besten Bewertungen für den Monat</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222736-game-testing-types-and-how-to-test-mobiledesktop-apps" title="Spieletests: Typen & So testen Sie Mobile / Desktop-Apps" rel="bookmark">Spieletests: Typen & So testen Sie Mobile / Desktop-Apps</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222738-selendroid-tutorial-for-beginners-with-example" title="Selendroid Tutorial für Anfänger mit Beispiel" rel="bookmark">Selendroid Tutorial für Anfänger mit Beispiel</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222740-15-best-mobile-testing-service-provider-companies" title="15+ BEST Mobile Testing Service Provider Unternehmen" rel="bookmark">15+ BEST Mobile Testing Service Provider Unternehmen</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222741-14-best-mobile-testing-tools-for-android-and-ios-app-freepaid" title="14 besten mobilen Testtools für Android & iOS App (kostenlos / bezahlt)" rel="bookmark">14 besten mobilen Testtools für Android & iOS App (kostenlos / bezahlt)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222742-interrupt-testing-in-mobile-application" title="Interrupt-Test in mobilen Anwendungen" rel="bookmark">Interrupt-Test in mobilen Anwendungen</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222743-how-to-download-and-install-uft-or-qtp-latest-version" title="Herunterladen und Installieren von UFT oder QTP (neueste Version)" rel="bookmark">Herunterladen und Installieren von UFT oder QTP (neueste Version)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222744-what-is-qtpuft-automation-testing-tool" title="Was ist das QTP / UFT Automation Testing Tool?" rel="bookmark">Was ist das QTP / UFT Automation Testing Tool?</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222745-flight-reservation-application-in-hp-uftqtp" title="Flugreservierungsanwendung in HP UFT / QTP" rel="bookmark">Flugreservierungsanwendung in HP UFT / QTP</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222746-30-best-mobile-app-development-tools-for-android-and-ios-2021" title="30 besten Tools zur Entwicklung mobiler Apps für Android & iOS (2021)" rel="bookmark">30 besten Tools zur Entwicklung mobiler Apps für Android & iOS (2021)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222747-how-to-record-and-playback-uftqtp-script" title="Aufnehmen und Wiedergeben von UFT / QTP-Skripten" rel="bookmark">Aufnehmen und Wiedergeben von UFT / QTP-Skripten</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222748-how-object-identification-works-in-qtpuft" title="Wie funktioniert die Objektidentifikation in QTP / UFT?" rel="bookmark">Wie funktioniert die Objektidentifikation in QTP / UFT?</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222749-how-to-use-qtpuft-ide" title="Verwendung der QTP / UFT IDE" rel="bookmark">Verwendung der QTP / UFT IDE</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222750-keyword-and-expert-view-in-qtpuft" title="Schlüsselwort- und Expertenansicht in QTP / UFT" rel="bookmark">Schlüsselwort- und Expertenansicht in QTP / UFT</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222751-understand-systemutil-run-setsecure-set-type-qtpuft-examples" title="Verstehen Sie die Beispiele für SystemUtil.Run, SetSecure, Set, Typ: QTP / UFT" rel="bookmark">Verstehen Sie die Beispiele für SystemUtil.Run, SetSecure, Set, Typ: QTP / UFT</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8222752-how-to-replay-a-script-in-qtpuft-with-example" title="So spielen Sie ein Skript in QTP / UFT anhand eines Beispiels ab" rel="bookmark">So spielen Sie ein Skript in QTP / UFT anhand eines Beispiels ab</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>
	
<div id="container-5533149ee6411a5f99b370c693e87966"></div>	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Top Artikel</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8223011-test-summary-reports-tutorial-learn-with-example-and-template" title="Tutorial zu Testzusammenfassungsberichten: Lernen Sie mit Beispiel & Vorlage" rel="bookmark"><img src="https://cdn.css-code.org/7523922/test_summary_reports_tutorial_learn_with_example_ampamp_template.png.webp" loading="lazy" alt="Tutorial zu Testzusammenfassungsberichten: Lernen Sie mit Beispiel & Vorlage" title="Tutorial zu Testzusammenfassungsberichten: Lernen Sie mit Beispiel & Vorlage" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8223011-test-summary-reports-tutorial-learn-with-example-and-template" title="Tutorial zu Testzusammenfassungsberichten: Lernen Sie mit Beispiel & Vorlage" rel="bookmark">Tutorial zu Testzusammenfassungsberichten: Lernen Sie mit Beispiel & Vorlage 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8223012-issue-management-in-your-testing-project" title="Issue Management in Ihrem Testprojekt" rel="bookmark"><img src="https://cdn.css-code.org/4276672/issue_management_in_your_testing_project.jpg.webp" loading="lazy" alt="Issue Management in Ihrem Testprojekt" title="Issue Management in Ihrem Testprojekt" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8223012-issue-management-in-your-testing-project" title="Issue Management in Ihrem Testprojekt" rel="bookmark">Issue Management in Ihrem Testprojekt 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8223013-software-quality-assurancesqa-plan-audit-and-review" title="Software Quality Assurance (SQA): Planen, Prüfen & Rezension" rel="bookmark"><img src="https://cdn.css-code.org/8665776/software_quality_assurancesqa_plan-_audit_ampamp_review.jpg.webp" loading="lazy" alt="Software Quality Assurance (SQA): Planen, Prüfen & Rezension" title="Software Quality Assurance (SQA): Planen, Prüfen & Rezension" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8223013-software-quality-assurancesqa-plan-audit-and-review" title="Software Quality Assurance (SQA): Planen, Prüfen & Rezension" rel="bookmark">Software Quality Assurance (SQA): Planen, Prüfen & Rezension 2025</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>
</aside>			</div>
		</div>
		
<footer class="footer footer--dark">
	<div class="container">
		<div class="footer__widgets">
			<div class="row">
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Beliebte Beiträge</h2>
						<ul class="post-list-small">
							<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003722-javascript-required-content-with-fallback-content" title="Erforderlicher JavaScript-Inhalt mit Fallback-Inhalt - CSS-Tricks" rel="bookmark">Erforderlicher JavaScript-Inhalt mit Fallback-Inhalt - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003723-empty-an-array" title="Array leeren - CSS-Tricks" rel="bookmark">Array leeren - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003724-fix-ie-10-on-windows-phone-8-viewport" title="Fix IE 10 unter Windows Phone 8 Viewport - CSS-Tricks" rel="bookmark">Fix IE 10 unter Windows Phone 8 Viewport - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003725-format-currency" title="Währung formatieren - CSS-Tricks" rel="bookmark">Währung formatieren - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003727-call-function-with-random-timer" title="Aufruffunktion mit Random Timer - CSS-Tricks" rel="bookmark">Aufruffunktion mit Random Timer - CSS-Tricks</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Tipp Der Redaktion</h2>
						<ul class="post-list-small">
						<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8223776-sap-bi-process-chain-create-check-activate-assign-monitor" title="SAP BI-Prozesskette: Erstellen, Prüfen, Aktivieren, Zuweisen, Überwachen" rel="bookmark">SAP BI-Prozesskette: Erstellen, Prüfen, Aktivieren, Zuweisen, Überwachen</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8223777-top-40-sap-bw-bi-interview-questions-and-answers" title="Top 40 Fragen zum SAP BW / BI-Interview & Antworten" rel="bookmark">Top 40 Fragen zum SAP BW / BI-Interview & Antworten</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8223778-sap-bex-query-designer-tutorial-and-query-elements" title="Tutorial zum SAP BEx Query Designer & Abfrageelemente" rel="bookmark">Tutorial zum SAP BEx Query Designer & Abfrageelemente</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8223779-sap-bw-tutorial-pdf-download-business-intelligence-book" title="SAP BW Tutorial PDF: Laden Sie Business Intelligence herunter (Buch)" rel="bookmark">SAP BW Tutorial PDF: Laden Sie Business Intelligence herunter (Buch)</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8223780-sap-bex-characteristics-and-key-figure-settings-rkf-ckf-and-formulas" title="SAP BEx: Eigenschaften & Kennzahleneinstellungen (RKF, CKF & Formeln)" rel="bookmark">SAP BEx: Eigenschaften & Kennzahleneinstellungen (RKF, CKF & Formeln)</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Top Artikel</h2>
						<ul class="post-list-small">
						<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003409-130-styling-the-article-archives-page" title="# 130: Gestaltung der Artikelarchivseite - CSS-Tricks" rel="bookmark"># 130: Gestaltung der Artikelarchivseite - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003410-131-building-more-homepage-modules" title="# 131: Weitere Homepage-Module erstellen - CSS-Tricks" rel="bookmark"># 131: Weitere Homepage-Module erstellen - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003411-132-intro-to-the-forums" title="# 132: Einführung in die Foren - CSS-Tricks" rel="bookmark"># 132: Einführung in die Foren - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003412-133-forums-wrangling-part-1" title="# 133: Foren Wrangling, Teil 1 - CSS-Tricks" rel="bookmark"># 133: Foren Wrangling, Teil 1 - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003414-136-understanding-vanilla-forums-theme-overrides" title="# 136: Vanilla-Foren verstehen Themenüberschreibungen - CSS-Tricks" rel="bookmark"># 136: Vanilla-Foren verstehen Themenüberschreibungen - CSS-Tricks</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
			</div>
			<p>© Copyright de.css-code.org, 2025 September | 
				<a href="https://de.css-code.org/about-site" title="Über Site">Über Site</a> | 
				<a href="https://de.css-code.org/contacts" title="Kontakte">Kontakte</a> | 
				<a href="https://de.css-code.org/privacy-policy" title="Datenschutz-Bestimmungen">Datenschutz-Bestimmungen</a>.
			</p>
			
		</div>
	</div>
</footer>		
<link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" />	</body>
</html>