Im Rahmen eines Projekts, an dem ich gerade arbeite, migrieren wir von Velocity zu JSP. Ich muss die vorhandenen Velocity-Vorlagen in JSPs umwandeln. Wir könnten Stunden damit verbringen zu diskutieren, warum dies entschieden wurde (teilweise meine Schuld), welches besser ist und der beste Weg, das Management von diesem Weg abzubringen, aber das wäre Zeitverschwendung, da sie dazu verpflichtet sind, dies zu tun.Migration von Velocity zu JSPs
Also, was ich suche ist eine Reihe von Mustern, Best Practices, was hast du, um mir zu helfen. In der globalen Bibliotheksdatei befinden sich viele Velocity-Makros, die für eine Vielzahl von Vorlagen verwendet werden. Ich denke darüber nach, jedes Makro in ein JSP Scriptlet zu konvertieren und das Makro in Java zu übersetzen. Dann würde ich diese Datei mit allen Scriptlets in jede JSP aufnehmen, entweder über die include-Direktive oder jsp: include. Ich dachte auch darüber nach, jeden Anruf in ein Makro in ein Skriptlet umzuwandeln. Diese Makros haben Parameter, die in der Spring ModelAndView-Klasse definierte Beans sind.
Vorläufige Tests scheinen darauf hinzuweisen, dass dieser Ansatz nicht funktioniert. Ich bekomme anscheinend JSP-Kompilierungsfehler. Aber ich könnte einen Fehler von mir vermissen.
Ich verwende diese Webanwendung auf OC4J Version 10.1.3.4.0.
Hier ist ein einfaches Beispiel für das, was ich zu tun habe. Dies ist in der VM_global_library.vm Datei:
#macro(showObjectErrors $objectName)
#if ($request.errorSystem.hasErrors($objectName))
<table>
#foreach ($error in $request.errorSystem.getErrors($objectName))
<tr>
<td class="acError">$error</td>
</tr>
#end
</table>
#end
#end
Und es ist in anderen Dateien wie so genannt:
#showObjectErrors("logonForm")
Beachten Sie, dass die „Anforderung“ Objekt ist keine HttpServletRequest, sondern eine Anwendungsklasse. Es gibt viel komplexere Beispiele, die zu viel zu zeigen sind.
Es scheint, dass wenn Sie "Umzug" sagen, Sie "migrieren" meinen und Sie nach dem besten (einfachsten) Ansatz für die Migration suchen. Das ist nicht der Fall. Das "Verschieben" von Velocity zu JSP wird "Neuschreiben" genannt. Folgerichtig wäre der beste Ansatz, Ihren neuen JSP-Code richtig zu schreiben - keine Scriptlets. – ChssPly76
Ich habe eine Reihe von Velocity Template-Dateien. Ich muss sie in JSPs verwandeln. –
Ich verstehe das. Ich sage nur, dass du sie am Ende sowieso von Grund auf neu schreiben wirst. Geschwindigkeitsmakros haben keine direkte Übereinstimmung in der JSP-Welt; jsp-include ist eine ziemlich schlechte Substitution. Apache-Kacheln (http: //tiles.apache.org) bieten einen etwas besseren Ansatz für die Seitenkomposition via Includes; aber es wird immer noch nicht zu einer Eins-zu-Eins-Übersetzung von Velocity-Makros führen. – ChssPly76