我对Rythm模板有一个奇怪的问题。目前,我将这些模板放在
下 myPrj/src/main/java/resources/templates
文件夹。
所有Java源代码都在myPrj/src/main/java
文件夹下。
当我尝试渲染时,有时候Rythm会生成XML文件,有时我会得到文件名。
我将home.template
设置为"模板"文件夹:
params.put("home.template", "templates");
String myTemplateString = Rythm.render("MyTemplate.xml", parameters);
看起来Rythm无法找到MyTemplate.xml
并导致发出MyTemplate.xml
作为输出。
你能帮我解决这个问题吗?此外,如果您能指导我放置这些模板的适当位置,我们将不胜感激。
答案 0 :(得分:0)
home.template
是初始化模板引擎的配置键,而不是用于呈现模板的参数。
我的应用实现类似于
public class App {
private static RythmEngine engine;
private static void echo(String msg, Object ... args) {
System.out.println(String.format(msg, args));
}
private static void init() {
echo("initializing rythmengine");
Map<String, Object> conf = new HashMap<String, Object>();
conf.put("home.template", "templates");
engine = new RythmEngine(conf);
echo("engine initialized");
}
private static void render() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("foo", "FOO");
params.put("bar", "BAR");
String result = engine.render("MyTemplate.xml", params);
echo(result);
}
private static void doJob() {
echo("start doing real job now...");
render();
}
public static void main( String[] args ) {
init();
doJob();
}
}
可以在https://github.com/greenlaw110/Rythm/tree/master/samples/demo_fo_SO_150529找到完整的示例代码。下载示例代码并运行mvn compile exec:java
以查看结果
答案 1 :(得分:0)
看来你的问题在于home.template
的路径。 example on their website可能会有所帮助。
如果我没有弄错,您应该使用params.put("home.template", "resources/templates");
而不是params.put("home.template", "templates");
。
一般来说,这种行为发生在Rythm无法找到模板的任何时候。我发现最好同时检查路径和文件名。如有必要,只需使用模板的绝对路径即可确保它指向正确的目录。在获得正确的路径后,您可能希望将其更改为相对路径。