我正在从Java Web应用程序内部执行XSLT转换,没有任何问题,如下所示:
Transformer transformer = TransformerFactory.newInstance().newTransformer(xslSource);
transformer.transform(xmlInput, xmlOutput);
现在,在我的XSLT转换中,我向document()函数添加了一个调用,以从RESTful Web服务加载响应:
http://server/service?id=
好酷,没问题。但是现在,我想从Java中的utils类读取基本URL,并将其传递给样式表。
//java
String baseUrl = myUtils.getBaseUrl();
/service?id=
关于如何做到这一点的任何建议?我的Java utils类从类路径上的myApp.properties文件中加载值,但是我不确定是否可以从XSLT中利用它。
参考方案
在样式表中声明一个 xsl:param ,以便可以在调用时传递baseUrl值:
在Transformer对象上设置参数:
Transformer transformer = TransformerFactory.newInstance().newTransformer(xslSource);
transformer.setParameter('baseUrl', myUtils.getBaseUrl());
transformer.transform(xmlInput, xmlOutput);
如果使用的是XSLT 2.0,则在构造resolve-uri()变量值时可以考虑使用 url 函数:
select="resolve-uri(concat('/service?id=', @id), $baseUrl)" />
resolve-uri()可以通过简单地将baseUrl与片段和$baseUrl连接在一起,来帮助补偿@id中的尾部斜杠,井号和其他东西,否则可能导致构造无效的URL。
Java中的<>>是什么意思? - java
This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…Java Applet的URLConnection与PHP无效 - java
我已经研究了Oracle文档和示例,但仍然无法正常工作。我有一个Java Applet,它只是尝试使用URLConnection和OutputStreamWriter通过POST将文本字段发送到PHP脚本。 Java方面似乎工作正常,没有引发异常,但是PHP在我的页面上未显示任何输出。我是PHP新手,因此请耐心等待。这是相关的Java部分: try { UR…页面加载而不是提交时发生struts验证 - java
请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:是否等于 - java
我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java
以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean