我有一个独特的问题需要解决。我需要使用标准模板动态创建基于HTML的报告。报告的内容由Java程序创建,因此创建一个使用JSP *创建静态HTML输出文件的新类是有意义的。
这是要点:
MyObject me = new MyObject();
me.process();
MyJSP jsp = new MyJSP(me);
File output = jsp.renderFrom("templateFile.jsp");
output
是一个静态的,自包含的HTML文件,我可以在IE / Firefox中打开并查看报告。
我应该遵循哪种模式/框架才能让我最好地实现这一目标?
一些注意事项:这实际上不是一个webapp。我正在创建基于HTML的报告,但这不会用作webapp。我也不愿使用String.format(".. giant template string .. ", args)
,因为这非常笨拙。我宁愿有这样的模板文件:
<html>
<head><title>First JSP</title></head>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You'll have a luck day!</h2><p>(<%= num %>)</p>
<%
} else {
%>
<h2>Well, life goes on ... </h2><p>(<%= num %>)</p>
<%
}
%>
<a href="<%= request.getRequestURI() %>"><h3>Try Again</h3></a>
</body>
</html>
模板的“动态”方面可以使用MyObject
属性等
最后,由于我在Java 8中遇到的一些问题,我计划使用Java 7.如果在Java 8中有更好的方法,请告诉我......
*在对JSP进行一些负面评论之后,或许JSP不是正确的选择。其他一些库也可以,只要它适用于Java。
答案 0 :(得分:2)
使用模板引擎! 我会推荐Freemarker,Velocity或StringTemplate。只是谷歌吧。任何这些引擎都将满足您的需求。