0

我在使用 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作为输出发射。

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

4

2 回答 2

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查看结果

于 2015-05-28T20:43:19.397 回答
0

看来您的问题在于home.template. 他们网站上的示例可能会有所帮助。

如果我没记错的话,你应该使用params.put("home.template", "resources/templates");而不是params.put("home.template", "templates");.

一般来说,这种行为发生在 Rythm 找不到模板的任何时候。我发现最好同时检查路径和文件名。如有必要,只需使用模板的绝对路径以确保它指向正确的目录。获得正确的路径后,您可能希望将其更改回相对的。

于 2017-01-26T15:12:25.460 回答