【问题标题】:Generate html code which depends on a parameter from java生成依赖于java参数的html代码
【发布时间】:2010-08-09 17:33:31
【问题描述】:

我希望能够生成 html 页面,其中 html 的某些部分应该依赖于某些参数。
我的想法是我可以有一个像 OneMailTemplate.html 这样的模板

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MailTemplate</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Bla bla bla</p>
    <someComponent>
    <p>Bla bla</p>
  </body>
</html>

然后得到一些方法来替换标签

<someComponent>

带有一些生成的 html 代码。 有没有办法在不使用 StringTokenizer 的情况下在 java 中做到这一点?
我也愿意接受有关如何以另一种方式做到这一点的建议。

【问题讨论】:

  • 您使用的是 servlet 还是 JSP 页面,或者,您如何在 Java 中生成它并将其传送到浏览器?
  • 它不会立即进入浏览器。它应该是一个 html 文件,这取决于在我的 webapp 中登录的用户。然后这个 html 文件将通过 javaMail 发送。

标签: java html xml


【解决方案1】:

尽管我很喜欢 XSLT,但我认为它对于这个目的可能有点沉重。 Freemarker 就是为这种事情而生的。它可以在 html 中使用带有 ${name} 等参数的 HTML 模板,并在不依赖 jsp 的情况下创建输出。

【讨论】:

    【解决方案2】:

    使用 Java 程序来做这件事有点矫枉过正......

    但在 Java 中正确的方法是使用 DOM 函数来查找标记,创建替换子树并输出结果。

    如果您的替换是静态的,您应该改用 XSLT。如果替换是动态的,请考虑使用 JSP 而不是自定义预处理器 - JSP 就是为这种情况而设计的。

    【讨论】:

    • 如果我如上所述想要获得可以通过 javaMail 发送的 html 文件,我可以使用 JSP。我需要从生成的 html 页面获取源代码并通过邮件发送,而用户不会看到此页面。
    • 可以保存生成的HTML页面,甚至可以自动发送。
    【解决方案3】:

    我使用Velocity 作为我的邮件模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2022-11-24
      • 2012-10-22
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2013-04-21
      相关资源
      最近更新 更多