UTF8-kodierte, getrimmte Ausgaben sind ja gut und schön, aber evt. möchte man diese auch escapen 🙂 Dazu gibt es das EscapeTool. Das ist ganz cool, bietet es doch Tools für HTML, URLs, JS, … Die “Doku” ist allerdings ein wenig dürftig, deshalb kurz dazu:
Den Download findet man hier. Ich habe die velocity-tools-2.0.zip genommen; daraus benötigt man aber nur lib/velocity-tools-2.0.jar. Das kommt in den Classpath, klar.
Aktivieren und in Templates injizieren (oder wie das da heißt) tut man das so:
1 2 3 4 |
VelocityContext velocityContext = new VelocityContext(); velocityContext.put( "esc", new EscapeTool()); Template template = Velocity.getTemplate("myTemplate.vm"); template.merge(velocityContext, myWriter); |
Und verwendet schließlich so:
1 |
$!{esc.html($!{myString})} |
Dabei ist das “!” in “$!{esc” wichtig, denn wenn $myString null ist, wird html() nicht gefunden – html() ist für String-Parameter definiert, nicht für null^^