Wie kann ich das generieren von html-Code aus Java-Objekt?
Habe ich eine rest-Ressource mit einer Methode zurückgeben soll, einige Daten als html. Wir reden über eine Liste der Berichte, das ist eine einfache Klasse, bestehend aus 6 string-member-Variablen.
Ich Frage, weil die Aussicht von Anhängen-Elemente und-Werte in eine Zeichenfolge scheint langsam und fehleranfällig, und ich würde es wirklich vorziehen, es zu tun in einer Objekt-orientierten Art und Weise.
InformationsquelleAutor Marmoy | 2011-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den normalen Weg der Generierung von HTML-Code für eine web-Antwort ist die Verwendung eine JSP oder ein Java-Template-engine wie Velocity oder FreeMarker.
Wenn Sie derzeit Rückgabe von Antworten als XML -, ein weiterer Ansatz wäre die Verwendung von XSLT zur Transformation von XML in HTML. Die XSLT-Verarbeitung kann getan werden, auf der client-Seite (im browser), wenn Sie einen entsprechenden "Verarbeitung" - Anweisung in der XML-Datei links zu der XSLT Ressource.
Früher dachte ich, dass bashing Zeichenfolgen zusammen, war eine vernünftige Lösung, aber dann kam ich zu erkennen, dass die Ergebnisse in hart-Verdrahtung Ihr HTML-layout in Ihre Java-code. Die JSP templating und transformation-Ansätze aller vermeiden, so dass Sie zum anpassen der generierten HTML-später im Entwicklungsprozess; z.B. bei system-integration-Zeit, oder auch nach der Bereitstellung.
Nicht alle. Aber moderne web-Browser - w3schools.com/XSL/xsl_browsers.asp
Ich dachte über die Verwendung von XSLT, haben Sie eine Idee, wie man die processing instruction in ein xml-Code erzeugt aus einer Liste von Berichten kommentiert mit javax.xml.binden.Anmerkung.XmlRootElement?
Können Sie erklären, wie man JSP-Rückgabe html-von einem rest-Methode?
1) Wenn Ihr servlet ist mittels MVC, vereinbaren Sie einfach, dass der controller (oder den Rahmen) löst eine Sicht, die implementiert ist als JSP. 2) Holen Sie sich Ihr servlet auf "vorwärts" die Anfrage/Antwort an die JSP-servlet-runner.
InformationsquelleAutor Stephen C
Für einfaches HTML, generiert es direkt als text. Die anderen Vorschläge von Serialisierung, XML und Transformationen sind alle overkill.
Gibt es Java-Bibliotheken zur Unterstützung der Generierung von HTML, wie z.B. diese:
Eine Bibliothek zum erstellen von HTML-5-markup mit Hilfe von Java. Es enthält auch Unterstützung für die Erstellung von JSON und CSS-3-markup.
Java-API zur Generierung von Elementen für verschiedene markup-Sprachen direkt unterstützt HTML 4.0 und XML. Jetzt im Ruhestand, aber manche Leute mögen es wirklich.
Aber wenn Sie lernen die Grundlagen der gültigen HTML-Code, Sie können schreiben Sie Ihre eigenen Routinen.
Wie für Geschwindigkeit, die StringBuilder - Klasse wurde Hinzugefügt, für die Zwecke der schnelleren string-manipulation. Der Kompromiss ist keine Synchronisation. Das bedeutet, dass nicht thread-safe. Je nachdem, wie Ihr Programm aufgebaut ist, könnten Sie die Synchronisierung verwenden um die Außenseite der code tun, der HTML-rendering.
Hier ein Beispiel einer Klasse, die ich gerade gekocht in Java 6, und eine kleine app, um Sie auszuführen. Dieser code ist nur ein proof of concept, nicht bereit für die prime time-Produktion.
Und eine app, um Sie auszuführen.
Habe ich versucht zu posten, das gerenderte HTML hier, aber StackOverflow habe versucht, Sie zu interpretieren als HTML anstatt es anzuzeigen.
Bonus-Tipp: verwenden Sie einfache Anführungszeichen (APOSTROPH Unicode-39) statt doppelter Anführungszeichen (ANFÜHRUNGSZEICHEN Unicode-34) in Ihrem HTML & CSS zur Abgrenzung von Attribut-Werten und so. Browser behandeln den beiden gut. Die single-quote macht die Codierung so viel einfacher, in Ihrem Java-code, wodurch die Notwendigkeit zu entkommen, der doppelten Anführungszeichen. Beachten Sie, meinen Einsatz in code oben, wie die
'en'
und'utf-8'
.InformationsquelleAutor Basil Bourque
Können Sie serialisieren Objekt in XML um, und geben Sie dann XLST generieren der HTML-Ausgabe.
Aber wenn es nur 6 Stiche, ich würde voran gehen und nur verketten der strings.
InformationsquelleAutor Michał Šrajer