In der Velocity User's Guide scheint es ziemlich einfach zu Methoden in Vorlagen zu verwenden. Ich habe versucht, aber konnte es nicht funktionieren. Kann mir jemand sagen, was ich falsch gemacht habe?Geschwindigkeit Vorlagen ersetzen keine Methoden
Danke.
Dies ist mein Code
@Test
public void testVelocity() {
Velocity.init();
VelocityContext map = new VelocityContext();
map.put("test", "Success");
map.put("ok", "OK!");
map.put("func", new Object() {public String test() {return "Yay!";}});
map.put("func2", new Object() {public String test(String t) {return t+t;}});
String template = "${func.test()} $test $func2.test($ok)";
StringWriter writer = new StringWriter();
Velocity.evaluate(map, writer, "", new StringReader(template));
assertEquals("Yay! Success OK!OK!", writer.toString());
}
und dies ist die Ausgabe:
org.junit.ComparisonFailure:
Expected :Yay! Success OK!OK!
Actual :${func.test()} Success $func2.test($ok)
Variable Ersetzungen scheint gut zu funktionieren, aber nicht Methodenaufrufe.
Bitte helfen.
Danke! Das hat geholfen! Ich machte einen POC, also kümmerte ich mich nicht um "echte" Klassen ... – Bennie