使用Java

时间:2016-09-01 23:47:36

标签: java html jsp java-8 java-7

我有一个独特的问题需要解决。我需要使用标准模板动态创建基于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。

1 个答案:

答案 0 :(得分:2)

使用模板引擎! 我会推荐Freemarker,Velocity或StringTemplate。只是谷歌吧。任何这些引擎都将满足您的需求。