java - 如何在 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() : "";
}
效果很好
解决方案
您可以使用 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();
}
推荐阅读
- react-native - 检测到人脸时在曝光相机中获取图像
- javascript - 如何使一个 div 高度成为其他 div 的最小高度?
- javascript - 如何解决 fullCalendar is not a function TypeError 错误?
- python - 安装 sklearn 或 scikit-learn
- php - php 服务器 https (Request req_FafwbsfPd38bhj) 不是有效的 URL
- github-actions - firebase-hosting-merge.yml 总是卡在 npm run build
- algorithm - 带负权查询的 Dijkstra 算法
- c# - 更改 SelectedItem 触发器获取而不是设置
- vue.js - Vue getter 不起作用 - 仅在函数字符串中获取内容
- javascript - Vanilla JS:滑块输入/鼠标移动触发过于频繁 -> 函数调用过多