/ / Kann eine JSP-Vorlage in Java verwendet werden? - Java, jsp

Kann eine JSP-Vorlage in Java verwendet werden? - java, jsp

Ich bin ziemlich neu in JSP. Bisher sieht es so aus, als ob der Verarbeitungsfluss so groß ist, dass Java zuerst ausgeführt und dann eine JSP-Vorlage aufgefüllt wird.

Ich frage mich, ob es innerhalb von Java eine Möglichkeit gibt, eine JSP-Vorlage zu verwenden. Stellen Sie sich vor, ich hätte eine einfache "SimpleDiv.jsp" -Vorlage auf dem Klassenpfad:

<div id="${id}" class="${class}">
${content}
</div>

Und dann könnte ich in einer beliebigen Java-Datei (die möglicherweise nicht einmal auf einem Servlet ausgeführt wird) Folgendes tun:

private String getDivHtml( id, html ) {
Template simpleDiv = TemplateLoader.load("SimpleDiv.jsp");
simpleDiv.set("id", id);
simpleDiv.set("class", Whatever.CLASS_NAME);
simpleDiv.set("content", html);

return simpleDiv.toString();
}

Dies ist ein ziemlich simples Beispiel, damit Sie nicht in die Details geraten. Die Hauptfrage ist: Kann ich eine JSP-Vorlage in Java einbinden und HTML inline generieren lassen?

Antworten:

4 für die Antwort № 1

Freemarker und Velocity sind sehr beliebt fürWenn Sie Inhalte aus Vorlagen generieren, können Sie eine davon ausprobieren. Da JSPs als Servlets implementiert sind (und die JSP-Spezifikation sie als Webkomponenten definiert), sind sie an den Servlet-Container gebunden.


2 für die Antwort № 2

Es gibt keine einfache Möglichkeit, dies mit einer einfachen JSP zu erreichen.

Eine andere Möglichkeit, JSP zu verwenden, wäre die Verwendung externer Frameworks, um die Aufgabe wie Apache Tiles und SiteMesh (hier erwähnt: Implementierung der JSP-Vorlage (zusammengesetztes Ansichtsmuster)).

Wenn Sie können, aktualisieren Sie auf Facelets, die aktuelle View-Technologie seit Java EE 6. Diese Technologie bietet bereits ein eingebautes Vorlagensystem, wie erläutert Hier und Hier.


2 für die Antwort № 3

Betrachten Sie diese Untermenge von JSP, die keine Abhängigkeit vom Servlet hat:

http://jstp.sourceforge.net/manual.html


0 für die Antwort № 4

Jsp ist eine innere Servelt, eine Java-Klasse, die normalerweise HTML ausgibt, wenn die Ausführung abgeschlossen ist.

Vielleicht solltest du die jsp-Datei einfach als reinen String behandeln, die "simpeDiv.set" -Methode ersetzt einfach die Werte von $ {key} durch $ {value}.