我正在努力更新XSLT转换,此更新的一部分涉及导入JSP中已有的一些功能。
提供给JSP的功能是通过一些自定义标记完成的,这些标记在TLD(http://java.sun.com/xml/ns/j2ee:taglib)XML文件中描述,而JSP文件在顶部包含一行:{{ 1}}
现在,这个XSLT需要从这个自定义标记库提供给JSP的一些常用功能。
我尝试在顶部插入一行:<%@ taglib uri="/WEB-INF/tlds/utilTags.tld" prefix="tags" %>
,但这不起作用(我并没有真正期待它)。那么,如何将这些标签导入XSLT转换?
答案 0 :(得分:1)
XSLT引擎可以解释和运行XSLT语法。
Taglibs具有不同的语法和完全不同的运行时环境。
理论上,(Java)XSLT引擎有可能将taglib集成为扩展,但我怀疑这已经完成。
TLDR:这是不可能的。
答案 1 :(得分:1)
XSLT本身不会解释JSP指令。相反,您可以执行以下操作之一:
<强>的hello.jsp 强>
<%@ page session = "false" %>
<%@ taglib uri="oracle.jsp.parse.OpenJspRegisterLib" prefix="jml" %>
<jml:transform href="hello.xsl" >
<page>
<title>Hello</title>
<content>
<paragraph>This is my first XML/XSL file!</paragraph>
</content>
</page>
</jml:transform>
<强> hello.xsl 强>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="page">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
<body bgcolor="#ffffff">
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h1 align="center">
<xsl:apply-templates/>
</h1>
</xsl:template>
<xsl:template match="paragraph">
<p align="center">
<i>
<xsl:apply-templates/>
</i>
</p>
</xsl:template>
</xsl:stylesheet>
生成此HTML:
<root>
<html>
<head>
<title>Hello</title>
</head>
<body bgcolor="#ffffff">
<h1 align="center">Hello</h1>
<p align="center"><i>This is my first XML/XSL file!</i></p>
</body>
</html>
</root>