首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@extends时空白Rythm输出

使用@extends时空白Rythm输出
EN

Stack Overflow用户
提问于 2014-02-21 15:12:59
回答 1查看 394关注 0票数 1

我有个有趣的问题。我试图将Rythm模板引擎集成到Spring应用程序中,因此我编写了一个简单的视图解析器,它调用RythmeEngine来呈现文件。但是,当我尝试使用@extends(...)时,引擎会返回一个空白呈现。我有两个模板文件:

layout.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Rythm Sandbox</title>
</head>
<body>
    <h1>Welcome!</h1>
    @render()
</body>
</html>

rhythm.html

代码语言:javascript
复制
@extends(layout)
Hello World!

我调用RythmEngine的方式如下:

代码语言:javascript
复制
RythmEngine eng = RythmEngineFactory.getEngine();
File f = new File(someRootPath + name + ctx.getSuffix());
resp.setContentType("text/html");
eng.render(httpResponse.getWriter(), f, model);

RythmEngineFactory.getEngine()返回具有以下配置的单例RythmEngine

代码语言:javascript
复制
Map<String, Object> props = new HashMap<String, Object>();
props.put("engine.mode", "dev");
props.put("home.template.dir", myTemplateRootDirectoryPath);
return new RythmEngine(props);

问题

问题是:如果没有@extends(layout)行在rhythm.html中,我将得到一个预期的呈现"Hello“。但是,当我试图扩展layout.html时,它会导致空白呈现(即根本没有输出)。我知道它正在查找layout.html文件,因为如果我用类似于@extends(layoutGooBlah)的东西替换@extends(layout),错误消息会说“无法通过名称‘layoutGooBlah’找到扩展模板”。所以我知道它找到了我的模板,但是为什么输出是空白的呢?

编辑:

有趣的现象:当我更改这一行时:

代码语言:javascript
复制
eng.render(httpResponse.getWriter(), f, model);

至:

代码语言:javascript
复制
String s = eng.render(f, model);
httpResponse.getWriter().write(s);

它起作用了。???为什么它在使用PrintStream时不写@extends

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-21 21:07:13

API engine.render(作者,.)是辆马车。请参阅https://github.com/greenlaw110/Rythm/issues/201

顺便说一下,我建议您在spring应用程序中使用http://github.com/greenlaw110/spring-rythm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21938092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档