放置Rythm模板文件的位置

时间:2015-05-27 22:47:58

标签: rythm

我对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作为输出。

你能帮我解决这个问题吗?此外,如果您能指导我放置这些模板的适当位置,我们将不胜感激。

2 个答案:

答案 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无法找到模板的任何时候。我发现最好同时检查路径和文件名。如有必要,只需使用模板的绝对路径即可确保它指向正确的目录。在获得正确的路径后,您可能希望将其更改为相对路径。