首页 > 解决方案 > 如何在 xpages 中读取 Java 中的 css 文件

问题描述

我想读取存储在我的 NSF 中的 css 文件的内容,以将其包含在我创建的 (HTML) 文件中的样式元素中。

FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream

似乎不是这样。

有人建议吗?

我试过了

InputStream input = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("file.css");

接着

StringBuilder sb = new StringBuilder();
sb.append("<style>").append("\n");
sb.append(convertStreamToString(input)).append("\n");
sb.append("</style>").append("\n");

static String convertStreamToString(java.io.InputStream is) {
        java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";
    }

效果很好

标签: javacssxpageslotus-domino

解决方案


您可以使用 Apache Commons IOUtils 从 InputStream 复制到 StringWriter,然后在 StringWriter 上使用 toString()。这是一个简单的方法:

private static String getResourceFile(final String filename) {
    final InputStream input = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(filename);

    final StringWriter writer = new StringWriter();
    try {
        IOUtils.copy(input, writer, "utf-8");
    } catch (final IOException e) {
        System.out.println("Error reading: " + filename);
    }
    return writer.toString();
}

推荐阅读