Model 2
{{#if: behandelt das Entwurfsmuster. Zum Flugauto Model II siehe Aerocar Incorporated.
| Vorlage:Hinweisbaustein | {{#ifeq: 0 | 0 |}}
}}
Model 2 ist ein komplexes Entwurfsmuster zur Trennung von Anzeige (Darstellung von Inhalten) und Logik (Bezug und Manipulation dieser Inhalte) bei Java-Webanwendungen. Daher wird es üblicherweise mit MVC assoziiert. Obwohl die genaue Ausgestaltung von MVC nie für Model 2 spezifiziert wurde, empfehlen eine Reihe von Veröffentlichungen eine formalisierte Schicht, die den MVC-Model-Code enthält. Beispielsweise haben die Java BluePrints ursprünglich die Verwendung von EJBs empfohlen, um das MVC-Model zu kapseln.
In einer Model 2 Anwendung werden Anfragen vom Client-Browser zum Controller geleitet. Der Controller führt die Logik aus, die zur Beschaffung des Inhalts für die Darstellung notwendig ist. Dann legt er diesen Inhalt in der Anfrage ab (üblicherweise als JavaBean oder POJO) und entscheidet, welcher View er die Anfrage überreicht. Die View stellt dann den Inhalt dar, der vom Controller überreicht wurde.
Model 2 wird für mittlere und große Anwendungen empfohlen.
Geschichte
1998 veröffentlichte die Sun Microsystems eine Vorabversion der JSP-Spezifikation, Version 0.92.<ref>JSP 0.92 Specification</ref> Darin werden zwei Methoden aufgeführt, mit denen JSP-Seiten benutzt werden können. Das erste Modell („Model 1“ der Reihenfolge im Dokument nach) war simpel, JSP-Seiten waren eigenständige Entitäten. Logik konnte in der Seite selbst enthalten sein, die Navigation zwischen den Seiten wurde üblicherweise durch Hyperlinks verwirklicht. ColdFusion und Active Server Pages sind Beispiele zeitgenössischer Technologien, welche dieses Modell implementierten.
Das zweite Modell (Model 2 der Reihenfolge nach) war eine verbesserte Methode, die Servlet- mit JSP-Technologie kombiniert. Der aufgeführte Unterschied war, dass ein Servlet die Anfrage abfangen, den darzustellenden Inhalt in einen Parameter (üblicherweise ein JavaBean) packen, und schließlich eine JSP aufrufen würde, um den Inhalt im gewünschten Ausgabeformat darzustellen. Dieses Modell unterschied sich vom vorherigen in der Tatsache, dass JSP-Technologie als reine Template-Engine benutzt wurde. Alle Logik war in einem Servlet abgetrennt, sodass die alleinige Aufgabe der JSP es war, den bereitgestellten Inhalt zu rendern.
1999 gelang Govind Seshadri die Formalisierung des Begriffs Model 2 als MVC-Architekturmuster für Webanwendungen, statt einer von zwei Optionen.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20131104190119
| {{#ifeq: 20131104190119 | *
| {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20131104190119}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2022-12-16 19:31:35 InternetArchiveBot | 2022-12-16 19:31:35 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20131104190119}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2022-12-16 19:31:35 InternetArchiveBot | 2022-12-16 19:31:35 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2022-12-16 19:31:35 InternetArchiveBot | 2022-12-16 19:31:35 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }} ({{#if: {{#if: 2022-12-16 19:31:35 InternetArchiveBot | 2022-12-16 19:31:35 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld) | {{#invoke:WLink|getEscapedTitle|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}} | {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}} }}
}}}}}}}}{{#if:2022-12-16 19:31:35 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20131104190119|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html}}
|| {{#if: || }}
}}{{#if: Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)
| {{#if: {{#invoke:WLink|isBracketedLink|Understanding JavaServer Pages Model 2 architecture by Govind Seshadri (JavaWorld)}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> Angesichts der Verlagerung der Logik aus der JSP in ein Servlet könnten diese beiden als View und Controller einer MVC-Architektur betrachtet werden.
Im März 2000 wurde Apache Struts veröffentlicht. Dieses Projekt formalisierte die Trennung zwischen View und Controller und behauptete, eine Implementierung des Model-2-Musters zu sein.<ref name="strutsModel2">How Struts Implements Model 2 (The Origins of Model 1/Model 2) (PDF; 745 kB)</ref> Abermals war die Implementierung des „Model“ undefiniert geblieben mit der Erwartung, dass Entwickler es mit einer angemessenen Lösung füllen würden. Datenbankinteraktion via JDBC und EJBs waren eine Option, die auf der Struts-Homepage vorgeschlagen wurde. Später wurden als modernere Optionen Hibernate, iBATIS und Apache OJB für das Modell aufgelistet.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20100923130649
| {{#ifeq: 20100923130649 | *
| {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20100923130649}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20100923130649}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }} ({{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Struts 1.x Homepage | {{#invoke:WLink|getEscapedTitle|Struts 1.x Homepage}} | {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/}} }}
}}}}}}}}{{#if:2019-05-02 02:40:55 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20100923130649|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://struts.apache.org/1.x/}}
|| {{#if: || }}
}}{{#if: Struts 1.x Homepage
| {{#if: {{#invoke:WLink|isBracketedLink|Struts 1.x Homepage}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://struts.apache.org/1.x/%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://struts.apache.org/1.x/%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://struts.apache.org/1.x/ }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
Seit der Veröffentlichung von Struts sind etliche konkurrierende Frameworks erschienen. Viele davon behaupten ebenfalls, dass sie Model 2 und MVC implementieren. Das Ergebnis ist, dass die beiden Begriffe synonym von Entwicklern benutzt werden, was zur Bezeichnung „MVC Model 2“ oder „MVC2“ geführt hat.
Missverständnisse
Ein übliches Missverständnis ist, dass ein formalisiertes MVC-Muster Voraussetzung für eine Model 2 Implementierung ist. Allerdings warnen die Java BluePrints speziell vor dieser Interpretation:<ref>Java BluePrints 4.4.1: Structuring the Web Tier</ref>
The literature on Web-tier technology in the J2EE platform frequently uses the terms „Model 1“ and „Model 2“ without explanation. This terminology stems from early drafts of the JSP specification, which described two basic usage patterns for JSP pages. While the terms have disappeared from the specification document, they remain in common use. Model 1 and Model 2 simply refer to the absence or presence (respectively) of a controller servlet that dispatches requests from the client tier and selects views.
In deutscher Übersetzung:
Die Literatur über Web-Tier-Technologie für die J2EE-Plattform benutzt häufig die Begriffe „Model 1“ und „Model 2“ ohne Erklärung. Diese Technologie stammt von frühen Entwürfen der JSP-Spezifikation, welche zwei grundlegende Gebrauchsmuster für JSP-Seiten beschreibt. Obwohl die Begriffe vom Spezifikationsdokument verschwunden sind, verbleiben sie geläufig. Model 1 und Model 2 beziehen sich schlicht auf die Abwesenheit bzw. Präsenz eines Controller-Servlets, das Anfragen vom Client-Tier sendet und Views auswählt.
Des Weiteren hat der Begriff „MVC2“ zum Irrglauben geführt, dass Model 2 die nächste Generation von MVC ist. Tatsächlich ist MVC2 nur eine Abkürzung von „MVC Model 2“.<ref>Struts, an open-source MVC implementation</ref>
Siehe auch
- Apache Struts ermöglicht Webanwendungen basierend auf einer Model 2 Architektur.
- JavaServer Faces ist ebenfalls eine Ausprägung der Model 2 Architektur.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20120622232617
| {{#ifeq: 20120622232617 | *
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20120622232617}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20120622232617}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }} ({{#if: {{#if: 2019-05-02 02:40:55 InternetArchiveBot | 2019-05-02 02:40:55 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5}} }}
}}}}}}}}{{#if:2019-05-02 02:40:55 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20120622232617|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.jsptutorial.org/content/architecture#innerLink5}}
|| {{#if: || }}
}}{{#if: Archivierte Kopie
| {{#if: {{#invoke:WLink|isBracketedLink|Archivierte Kopie}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.jsptutorial.org/content/architecture#innerLink5%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.jsptutorial.org/content/architecture#innerLink5%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.jsptutorial.org/content/architecture#innerLink5 }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
Einzelnachweise
<references />
Weblinks
- Wikipedia:Vorlagenfehler/Mehrdeutigkeitshinweis
- Seiten mit defekten Dateilinks
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Entwurfsmuster