如何在速度模板中使用set追加新行?這不起作用。速度設置指令中的新行
#(set $some = "$a \n $b")
字面打印\ n。
這樣做也不起作用:
VelocityContext context = new VelocityContext();
context.put("esc", new EscapeTool());
Velocity.evaluate(context, writer, "LOG", template);
如何在速度模板中使用set追加新行?這不起作用。速度設置指令中的新行
#(set $some = "$a \n $b")
字面打印\ n。
這樣做也不起作用:
VelocityContext context = new VelocityContext();
context.put("esc", new EscapeTool());
Velocity.evaluate(context, writer, "LOG", template);
您可以使用$esc.n
或它的同義詞$esc.newline
從EscapeTool此:
#set($some = $a + $esc.n + $b)
如何初始化工具:
ToolManager velocityToolManager = new ToolManager();
velocityToolManager.configure("velocity-tools.xml");
VelocityContext context = new VelocityContext(velocityToolManager.createContext());
你可以得到默認的velocity-tools.x毫升從here(它也包含在工具jar中)並啓用您需要的工具。
@serg - 謝謝。我如何將'EscapeTool'添加到上下文中?我做了'context.put(「esc」,新的EscapeTool())'。它不起作用。這不是一個Web應用程序,只是一個帶速度宏的普通Java代碼。 – fastcodejava 2010-09-08 17:12:55
@fastcodejava我將它添加到答案中。 – serg 2010-09-08 17:48:57
@serg - 我在做上面的代碼,爲什麼不行? – fastcodejava 2010-09-12 15:13:13
要知道,在速度的現代版本,你只要把線打斷他。
#set($haslinebreak = "this has
a line break")
跆拳道是速度?您可能想要提供更多的上下文。 – leppie 2010-09-08 12:43:35
@leppie:Apache Velocity - 它是一個模板引擎。 @fastcodejava:爲什麼你需要在你的字符串中換行?只需將換行符直接寫入輸出。 – 2010-09-08 13:20:27