jsp - 无法访问结果作为变量
问题描述
我在 jsp 文件中使用 xlst 来模板化 xsl 源:
<x:transform xslt="${xslt}" doc="${xmlString}"></x:transform>
它工作正常并在页面上显示预期的 html。但是,我需要将此结果作为变量访问以供进一步使用。我尝试添加var="printData"
为属性,但
- 没有进行格式化,也没有文本出现在
<x:transform>
- 如果我尝试打印出来
${printData}
,[#document: null]
就会打印出来。
我试过寻找文档,但我几乎找不到关于使用 var 的信息,对吗?问题出在其他地方吗?
解决方案
不是var
在转换上解决,而是通过传递数据预转换并通过 Java 转换它
public static String elaborateXml(String xslPath, String xml) {
try {
StringReader reader = new StringReader(xml);
StringWriter writer = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(
new javax.xml.transform.stream.StreamSource(xslPath));
transformer.transform(
new javax.xml.transform.stream.StreamSource(reader),
new javax.xml.transform.stream.StreamResult(writer));
String result = writer.toString();
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
推荐阅读
- node.js - 如何使用 hapi npm 配置 index.js 进行部署
- react-native - 如何在 ReactNative 的 SectionList 中实现 TextInput?
- python - 为什么 z 检验表明 2 个看起来相似的分布存在显着差异(假设检验)
- django - 如何确保 app2 无法访问我的 django app1 url
- azure-data-factory-2 - 数据工厂中的 Python 脚本
- php - 自定义帖子类型的分页不起作用 - WordPress
- c# - 依赖注入的 DbContext 始终为空
- javascript - 我想每 3 秒刷新一次谷歌地图,而不是 php 中的整个页面
- javascript - 对api的两个一一查询
- jenkins - 尝试在 jenkins 中启动 docker-compose 构建