可以在Java中使用JSP模板吗?

时间:2013-09-18 16:29:00

标签: java jsp

我是JSP的新手。到目前为止,处理流程似乎是先运行Java,然后填充JSP模板。

我想知道Java中是否有一种方法可以利用JSP模板。我的意思是,想象一下我在类路径上有一个简单的“SimpleDiv.jsp”模板:

<div id="${id}" class="${class}">
    ${content}
</div>

然后从一个任意Java文件(可能甚至不在servlet上运行)中,我可以做这样的事情:

private String getDivHtml( id, html ) {
    Template simpleDiv = TemplateLoader.load("SimpleDiv.jsp");
    simpleDiv.set("id", id);
    simpleDiv.set("class", Whatever.CLASS_NAME);
    simpleDiv.set("content", html);

    return simpleDiv.toString();
}

这是一个非常简单的例子,所以不要深究细节。主要问题是 - 我可以在Java中引入JSP模板并使其生成内联HTML吗?

4 个答案:

答案 0 :(得分:4)

Freemarker和Velocity非常适合从模板生成内容,您可以尝试其中一种。由于JSP是作为servlet实现的(并且JSP规范将它们定义为webcomponents),因此它们与servlet容器相关联。

答案 1 :(得分:2)

使用普通JSP没有简单的方法来实现这一点。网站上有相关的Q / As解释如何操作:

使用普通JSP的另一个选择是使用外部框架来完成Apache Tiles和SiteMesh之类的任务(这里提到:JSP template implementation (Composite View Pattern))。

如果可以,请升级到Faceletsthe current view technology since Java EE 6。此技术已提供内置模板系统,如herehere所述。

答案 2 :(得分:2)

考虑这个不依赖于servlet的JSP子集:

http://jstp.sourceforge.net/manual.html

答案 3 :(得分:0)

Jsp是一个内部servelt,一个java类,通常,它在完成执行时输出HTML。

也许您应该将jsp文件视为纯字符串,“simpeDiv.set”方法只是替换作品:将$ {key}替换为$ {value}