Wicket: Wie programmiere ich die Seite programmatisch und erhalte das Ergebnis als String?

8

Ich bin dabei, eine App zu konvertieren, um i18n / l10n auf all ihren Seiten zu verwenden. Ich bin sehr glücklich mit Wickets Unterstützung dafür, und es läuft bisher sehr gut. Der eine schwierige Teil, auf den ich gestoßen bin, ist der folgende:

Wir haben eine Textdatei, die als HTML-Vorlage zum Senden von E-Mails verwendet wird, wenn Benutzer eine bestimmte Operation auf der Site ausführen. Wenn der Benutzer auf einen bestimmten Link klickt, lese ich diese Vorlage manuell ein, mache einige Textersetzungen wie "Dear $USERNAME" und sende das Ergebnis als HTML-E-Mail an den Benutzer.

Um die etwa 10 Sprachen zu unterstützen, auf die wir abzielen, muss ich entweder 10 Kopien dieser Vorlagendatei erstellen oder eine Möglichkeit finden, diese "Seite" mit der integrierten i18n-Unterstützung von Wicket zu rendern. Nimm das Ergebnis als String und sende es dann.

Daher meine Frage : Wie kann ich eine Wicket-Seite programmatisch "rendern" und das Ergebnis als String erhalten?

Ich würde es vorziehen, Hacks wie HttpClient zu vermeiden, wenn überhaupt möglich; HttpClient wird nicht das Gebietsschema des Benutzers haben, wird nicht automatisch als Benutzer usw. angemeldet, so dass das für mich keine gute Lösung zu sein scheint.

    
George Armhold 15.08.2011, 17:38
quelle

3 Antworten

6

Zwei Artikel dazu:

Render a Wicket-Seite zu einer Zeichenfolge für HTML-E-Mails

Rendering Panel zu einer Zeichenfolge

Gegenwärtig ist der einzige andere Ansatz, WicketTester zu verwenden das, aber ich erinnere mich nicht Details, wie man das macht.

    
Omnaest 15.08.2011, 18:23
quelle
5

Wenn Sie nur den rohen Code wollen, hier ist es: (Dies ist praktisch das gleiche wie die Lösung in dem Artikel beschrieben.)

%Vor%     
biziclop 15.08.2011 18:40
quelle
4

Für neuere Wicket-Versionen: 6.7.0 kam mit einem neu ComponentRenderer genau für dieser Zweck!

    
Tim 15.10.2013 09:18
quelle