Wie die Ausgabe ${Ausdruck} in Freemarker, ohne dass es interpretiert wird?
Ich versuche, Freemarker in Verbindung mit jQuery Vorlagen.
Beide frameworks verwenden dollar-Zeichen/geschweifte Klammern zu identifizieren, die Ausdrücke für die substitution (oder wie Sie genannt werden, in freemarker, "Interpolationen") , z.B. ${person.name}
.
Also, wenn ich definieren ein jQuery-Vorlage mit Ausdrücken in die syntax, Freemarker, versucht Sie zu interpretieren (und scheitert).
Ich habe versucht, verschiedene Kombinationen der Flucht vor den ${
Sequenz führen Sie es durch Freemarker ohne Erfolg - \${
, \$\{
, $\{
usw.
Einfügen eines freemarker Kommentar zwischen dem dollar und dem curly (z.B. $<#-- -->{expression}
) funktioniert - aber ich bin auf der Suche für ein präziseres und elegante Lösung.
Ist es ein einfacher Weg, um ein Freemarker template für die Ausgabe der Zeichenfolge ${
?
InformationsquelleAutor Glenn Barnett | 2011-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese sollten print ${person.name}:
InformationsquelleAutor javanna
Auch, wenn Sie längere Abschnitte ohne FreeMarker-markup, die Sie verwenden können
<#noparse>...</#noparse>
.Wenn Sie dieses Problem haben viele, da FreeMarker 2.3.28 Sie können konfigurieren, FreeMarker zu verwenden
[=exp]
statt${exp}
durch Einstellung desinterpolation_syntax
Konfiguration Einstellungsquare_bracket
(in der Java-API:Configuration cfg; ... cfg.setInterpolationSyntax(Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX)
). Dann${exp}
ist nur statischer text für FreeMarker. Verwechseln Sie nicht diese Einstellung mit dertag_syntax
Einstellung, die auch haben könnensquare_bracket
Wert, aber unabhängig von der interpolation syntax (aber vielleicht möchten Sie lieber die Einstellung sowohl zusquare_bracket
). Siehe auch: https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.htmlInformationsquelleAutor ddekany
Andere option ist die Verwendung von #include-mit parse= " false option. Das heißt, setzen Sie Ihre jQuery-Vorlagen in den separaten include-Seite und verwenden parse=false, sodass freemarker nicht versuchen und analysieren es.
Wäre dies eine gute option, wenn Sie die Vorlagen größer und enthalten doppelte Anführungszeichen.
InformationsquelleAutor Rob Bygrave
Wenn
${
ist Ihr einziges problem ist, dann könnte man mit der alternativen syntax in den jQuery-Templates-plugin wie dieses:{{= person.name}}
Vielleicht ein wenig sauberer als die Flucht.
InformationsquelleAutor RP Niemeyer
Haben Sie versucht
$$
?Fand ich von der Freemarker manual, dass
${r"${person.name}"}
ausgedruckt${person.name}
ohne den Versuch zu machen, es.Vielleicht sollten Sie auch einen Blick auf Freemarker Flucht freemarker
InformationsquelleAutor adarshr
Musste ich verbrachte einige Zeit, um herauszufinden, die folgenden Szenarien zu entkommen, ${Ausdruck} -
InformationsquelleAutor Rahul Tiwari
In dem Fall, wenn Sie verwenden möchten, nicht-raw-strings, so dass Sie entkommen kann und doppelte Anführungszeichen, Apostrophe, etc. haben, können Sie Folgendes tun:
Vorstellen, dass Sie wollen, verwenden Sie die Zeichenfolge ${Hello}-"Mein Freund der Freund" innerhalb einer Zeichenkette. Sie können das nicht mit raw-strings. Was ich verwendet habe, die funktioniert, ist:
Habe ich nicht entkam der Apostroph da ich doppelte Anführungszeichen verwendet.
InformationsquelleAutor Jaime Garza
Kann ich bestätigen, dass die
ist der richtige Weg, als ein Beispiel.
So, dass ich irgendwie voll Beispiel Aussehen wird
und die Ausgabe wird sein :
InformationsquelleAutor JOKe