Java 无法将Ryth模板引擎与servlet 3.0一起使用

Java 无法将Ryth模板引擎与servlet 3.0一起使用,java,tomcat,servlets,servlet-3.0,rythm,Java,Tomcat,Servlets,Servlet 3.0,Rythm,我正在尝试在tomcat7上使用Ryth模板引擎和servlet 3.0。 我想将模板从WebContent目录渲染到Rythm引擎。但它并没有检测到模板 在servletinit()方法中,我将Rthym引擎初始化为 public void init(ServletConfig config) throws ServletException { Map <String, Object> context = new HashMap <String, Object

我正在尝试在tomcat7上使用Ryth模板引擎和servlet 3.0。
我想将模板从
WebContent
目录渲染到
Rythm
引擎。但它并没有检测到模板

在servlet
init()
方法中,我将Rthym引擎初始化为

public void init(ServletConfig config) throws ServletException {
        Map <String, Object> context = new HashMap <String, Object> ();
        //String filePath = new File("").getAbsolutePath();
        //filePath.concat("WebContent");
        context.put("home.template", "WebContent");
        Rythm.init(context);
    }

但是它在浏览器中只显示了“NewFile.html”(不是NewFile.html的内容,而是字符串“NewFile.html”

我对Rythm也有类似的问题,在我的例子中,它有助于在文件名前写入目录:

Rythm.render("templates/" + templateFileName, parameters);

设置
home.template
变量对我也不起作用。

Rythm使用资源管理器加载模板文件。资源管理器的默认实现将资源加载委托给
Thread.currentThread.getContextClassLoader()
,后者无法加载
webapp
文件夹下的任何资源。请参阅

如果要在
webapp
文件夹下加载模板,则需要创建自己的资源管理器并委托给
ServletContext
以加载模板

幸运的是,您不需要这样做。只需将模板放在
resources
文件夹下,它就会按预期工作。下面是一个简单的项目:


项目源代码可以在

上找到,知道为什么吗?可能是Rythm中的一个bug。
Rythm.render("templates/" + templateFileName, parameters);