【问题标题】:Automatically generate HTML pages in Java在 Java 中自动生成 HTML 页面
【发布时间】:2011-09-13 17:04:45
【问题描述】:

我正在开发一个 Java 桌面应用程序。我需要通过我的应用程序创建 HTML 页面。当用户点击 View in Browser 按钮时,应该创建一个包含一些详细信息的 HTML 页面并将其显示给用户。

有什么办法可以做到这一点吗?在这种情况下我可以使用任何资源吗?

欢迎提出任何建议。

【问题讨论】:

  • html页面应该包含什么?
  • 一些图片、表格和文字。
  • 是否有网络服务器来显示这些 html 页面?是否有 FTP/SSH 连接或类似的东西?
  • @user754218,看看这个链接是否有帮助..stackoverflow.com/questions/2323110/…
  • 不,我只是想要一种向用户显示这些信息的方法。我只需要 html 文件,以便用户可以在浏览器中查看它们。我见过一些应用程序这样做。他们将 html 页面创建为报告,以便用户查看它们。

标签: java html


【解决方案1】:
import java.awt.Desktop;
import java.io.*;

class ShowGeneratedHtml {

    public static void main(String[] args) throws Exception {
        File f = new File("source.htm");
        BufferedWriter bw = new BufferedWriter(new FileWriter(f));
        bw.write("<html><body><h1>Blah, Blah!</h1>");
        bw.write("<textarea cols=75 rows=10>");
        for (int ii=0; ii<20; ii++) {
            bw.write("Blah blah..");
        }
        bw.write("</textarea>");
        bw.write("</body></html>");
        bw.close();

        Desktop.getDesktop().browse(f.toURI());
    }
}

这台电脑上的结果

【讨论】:

    【解决方案2】:

    您应该使用包javax.swing.text.html.HTML。 例如,它有JEditorPane。它提供 HTML 3.2 支持。您应该只设置 URL 的名称,如果网络连接可用,将显示该页面。见the example

    【讨论】:

      【解决方案3】:

      你可以看看 - javax.swing.text.html.HTML.Tag 它提供了一些基本功能。如果还不够,可以考虑使用JavaServer Pages。

      【讨论】:

        【解决方案4】:

        Flying Saucer 库是一个纯 Java 库,用于呈现 XML、XHTML 和 CSS 2.1 内容。由 Java Swing 团队的一名成员发起。

        【讨论】:

          【解决方案5】:

          使用这些库中的任何一个构建 html,例如 jsoup、wffweb、j2html、jwebutils 等 (referred from SO),并将其写入临时文件,然后调用 Desktop.getDesktop().browse(file.toURI());

          如果我们使用 wffweb 可能是这样的

          Html html = new Html(null) {{
              new Head(this);
              new Body(this) {{
                  new NoTag(this, "Hello World");
              }};
          }};
          
          File tempFile = File.createTempFile("temporary_html", "html", new File("/home/username/tmpdir"));
          html.toOutputStream(new FileOutputStream(tempFile));
          Desktop.getDesktop().browse(tempFile.toURI());
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-08-11
            • 1970-01-01
            • 2015-07-14
            • 1970-01-01
            • 2019-11-07
            • 2017-06-14
            • 1970-01-01
            • 2013-04-01
            相关资源
            最近更新 更多