我是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吗?
答案 0 :(得分:4)
Freemarker和Velocity非常适合从模板生成内容,您可以尝试其中一种。由于JSP是作为servlet实现的(并且JSP规范将它们定义为webcomponents),因此它们与servlet容器相关联。
答案 1 :(得分:2)
使用普通JSP没有简单的方法来实现这一点。网站上有相关的Q / As解释如何操作:
使用普通JSP的另一个选择是使用外部框架来完成Apache Tiles和SiteMesh之类的任务(这里提到:JSP template implementation (Composite View Pattern))。
如果可以,请升级到Facelets,the current view technology since Java EE 6。此技术已提供内置模板系统,如here和here所述。
答案 2 :(得分:2)
考虑这个不依赖于servlet的JSP子集:
答案 3 :(得分:0)
Jsp是一个内部servelt,一个java类,通常,它在完成执行时输出HTML。
也许您应该将jsp文件视为纯字符串,“simpeDiv.set”方法只是替换作品:将$ {key}替换为$ {value}