我们知道 XML+XSLT就可以直接输出到支持XML的浏览器上,如IE 5.0以上,但是,我们还要考虑到有不少浏览器不直接支持XML,在这种情况下,我们需要在<nobr>
服务器</nobr>上进行转换成html输出到浏览器,这种临时过渡办法恐怕要在一段时间内一直要使用. 使用Jsp 加上tablib标识库,我们可以完成这种转换。
著名open source项目组jakarta.apache.org推出的系列标识库中,就有这个功能的tanglib:http://jakarta.apache.org/taglibs/doc/xsl-doc/intro.html
按照jakarta配置方法,有点繁琐,需要修改或定义Web.xml,本人经过摸索,使用下列相当简单的办法,就可以使Jsp能成功运行XSL这个标识库了。
xsl标识库有三个关键包:
xerces.jar 可以在http://xml.apache.org/中得到
xalan.jar 可以在http://xml.apache.org/中得到
xsl.jar 从http://jakarta.apache.org/taglibs/doc/xsl-doc/intro.html得到
1.将这三个包放置到Tomcat的common/lib目录下,或者直接放入Classpath环境中。
2.在JSP中调用标识库:
原来Jakarta推荐方法是:
<%@taglib uri="http://jakarta.apache.org/taglibs/xsl-1.0" prefix="xsl" %>
这就需要在/WEB-INF/web.xml下定义一下http://jakarta.apache.org/taglibs/xsl-1.0指向。如:
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/xsl-1.0</taglib-uri>
<taglib-location>/WEB-INF/xsl.tld</taglib-location>
</taglib>
这种做法虽然很标准,但是,如果你的容器一直使用tomcat,就完全不必了。
我们的做法是:
<%@taglib uri="xsl.jar" prefix="xsl" %>
我们以Jakarta的XSL taglib附带的Apply.jsp为例,正好了解一下Jsp XML XSLT三者之间的关系:
Apply.jsp
<%@taglib uri="xsl.jar" prefix="xsl" %>
<html>
<head>
<title>Employee List</title>
</head>
<body bgcolor="white">
<p>下面展示了Jsp的四种组合XML XSLT的方法:
<p>下面使用apply方法,将已经存在的employees.xml和employeeList.xsl结合在一起
<xsl:apply xml="/xml/employees.xml" xsl="/xml/employeeList.xsl"/>
<hr>
<p>下面是使用已经存在employeeList.xsl 然后在Jsp中自己直接写入XML数据.
java 代码
- <xsl:apply xsl="/xml/employeeList.xsl">
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <employees>
- <employee id="123">
- <first-name>John</first-name>
- <last-name>Doe</last-name>
- <telephone>800-555-1212</telephone>
- </employee>
- <employee id="456">
- <first-name>Jane</first-name>
- <last-name>Smith</last-name>
- <telephone>888-555-1212</telephone>
- </employee>
- <employee id="789">
- <first-name>George</first-name>
- <last-name>Taylor</last-name>
- <telephone>555-555-1212</telephone>
- </employee>
- </employees>
- </xsl:apply>
- <hr>
<p>下面使使用include调用的办法,这样一个XSLT样式可以适应不同的XML文件。
<xsl:apply xsl="/xml/employeeList.xsl">
<xsl:include page="/xml/employees.xml"/>
</xsl:apply>
<hr>
<p>下面是使用import方法,在page-scope(类似scope="page")中导入XML文件</p>
<xsl:import id="data" page="/xml/employees.xml"/>
<xsl:apply nameXml="data" xsl="/xml/employeeList.xsl"/>
</body>
在上面程序中,展示了四种Jsp组合XML XSLT的方法,基本可以满足我们的需要。注意上面的XML文件路径是"/xml/",这是相对Tomcat容器的绝对路径。
我们简单看一下employeeList.xsl和employees.xml内容:
employeeList.xsl类似html中的CSS,主要是对XML中数据显示方式进行定义:
xml 代码
- <?xml version="1.0"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template match="employees">
- <table border="1" width="100%">
- <tr>
- <th>ID</th>
- <th>Employee Name</th>
- <th>Phone Number</th>
- </tr>
- <xsl:for-each select="employee">
- <tr>
- <td>
- <xsl:value-of select="@id"/>
- </td>
- <td>
- <xsl:value-of select="last-name"/>,
- <xsl:value-of select="first-name"/>
- </td>
- <td>
- <xsl:value-of select="telephone"/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:template>
-
- </xsl:stylesheet>
-
-
-
- employees.xml
-
- <?xml version="1.0" encoding="ISO-8859-1"?>
-
-
- <employees>
- <employee id="123">
- <first-name>John</first-name>
- <last-name>Doe</last-name>
- <telephone>800-555-1212</telephone>
- </employee>
-
- <employee id="456">
- <first-name>Jane</first-name>
- <last-name>Smith</last-name>
- <telephone>888-555-1212</telephone>
- </employee>
-
- <employee id="789">
- <first-name>George</first-name>
- <last-name>Taylor</last-name>
- <telephone>555-555-1212</telephone>
- </employee>
- </employees>
-
-
如果我们在employees.xml顶部加入:
xml 代码
- <?xml:stylesheet type="text/xsl" href="catalog.xsl"?>
用支持XML的IE 5.0以上浏览器调用,其显示页面就和Apply.jsp显示页面是一样的。
分享到:
相关推荐
- XSLT(Extensible Stylesheet Language Transformations)用于转换XML文档,可以将一个XML文档转换为另一个结构不同的XML文档,或转换为HTML等其他格式。 #### 二、Servlet详解 **Servlet**是Java EE的一个关键...
1. **数据绑定**:JSP可以通过JSTL的XML标签或者DOM/SAX解析XML,将XML数据绑定到JSP页面,实现动态展示。 2. **Web服务**:JSP可以调用基于XML的Web服务接口,获取并处理返回的数据,提供丰富的用户界面。 3. **...
4. XSLT转换:XSLT用于将XML转换为其他格式,如HTML或PDF,通过匹配模式和模板规则来定义转换逻辑。 5. XPath:XPath是XML路径语言,用于选取XML文档中的节点,可以用来导航、查找和操作XML数据。 6. DOM和SAX解析:...
此外,JSP和XML还可以结合Java服务器端技术如Spring框架,通过XPath或XSLT进行数据转换,实现更复杂的Web应用程序。 总之,JSP和XML都是Web开发中的关键组件,它们各自承担着不同的职责,JSP负责动态内容的生成,而...
JSP(JavaServer Pages)是Java平台上的Web开发技术,它允许开发者将静态HTML和动态Java代码结合在一起。学习JSP,你需要掌握: 1. JSP基本结构:JSP页面由HTML标记和JSP元素组成,如脚本元素、指令元素和动作元素...
JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将静态HTML页面与动态Java代码相结合,以创建交互式的Web应用。在本教程中,我们将深入探讨JSP的核心概念、操作环境以及它与其他关键Java技术如...
3. **数据与显示分离**:XML与显示样式分离,可以结合CSS定义样式,通过XSLT转换数据结构,或者用XSL-FO进行更复杂的格式化输出。 4. **灵活的WEB应用**:XML可以作为数据存储和交换的通用格式,适用于各种Web应用...
### 基于Servlet/JSP和XML技术的远程教学系统的研究与实现 #### 概述 随着信息技术的快速发展,特别是互联网技术的日新月异,网络教学已成为教育领域中不可或缺的一部分。传统的教学方式受到时间和空间的限制,而...
新闻数据以XML文件存储,利用ASP(或其他类似JSP、PHP的开发工具)与XML结合,自动创建静态HTML页面。静态页面以时间戳命名,确保唯一性,并方便用户浏览。 此外,XML技术还支持XPath用于文档搜索,XSLT和SOAP用于...
XML文件可能被解析为DOM(Document Object Model)树,然后由Java代码处理,或者通过XSLT(XSL Transformations)转换为HTML或其他格式,最后在JSP中呈现。此外,Spring框架等高级技术也允许使用XML配置来管理依赖...
基于XML的自动化信息发布方案结合两者优点,无需数据库管理系统,而是利用XML文件存储信息,通过程序自动生成静态HTML页面,简化发布流程,尤其适合中小型网站。 XML的特性包括: 1. **通用性**:XML是国际标准,...
- **jsp:include**:此动作用于将一个JSP页面或静态文件嵌入到当前页面中。这有助于保持代码的一致性和可维护性。 - **page**:指定要包含的资源路径。 - **flush**:当值为“true”时,在包含资源之前会先清空...
- **样式表**:使用XSLT(Extensible Stylesheet Language Transformations)可以将XML文档转换为其他格式,如HTML或PDF,从而实现内容与表现的分离。 - **配置文件**:XML常被用作配置文件的格式,用于存储系统的...
JSP 提供了一种简洁的方法,在 HTML 页面中嵌入 Java 代码片段,使得开发者能够轻松地将动态内容集成到网页中。 #### JSP 的基本用法 - **指令写法** (`指令名字%>`) - **page 指令** - `language`: 表明可以...
- **JSPXML数据处理** - JSP 可以使用多种技术处理 XML 数据,如 DOM、SAX、XSLT 等。 - **JSPJavaBean** - JavaBean 是一种 Java 类,通常用于封装数据和业务逻辑。 - **JSP自定义标签** - 自定义标签允许开发者...
- **HTML和CSS的结合**:学习如何将静态HTML内容与CSS样式结合起来,创建具有吸引力的用户界面。 - **JavaScript与DOM操作**:掌握如何使用JavaScript动态修改HTML元素,提升用户体验。 - **JSP与Java后端**:理解...
JSP结合了HTML的静态内容和Java的动态功能,支持MVC模式,可以与Servlet、JavaBeans、EJB等Java技术协同工作,构建企业级Web应用。 五、XML(eXtensible Markup Language) XML是一种标记语言,用于存储和传输结构...
13.1.xsl 使用XSLT将XML转换为HTML 13.2.xml 一个雇员列表xml文件 13.2.xsl 一个XSL样式表的例子 13.3.htm Internet Explorer 浏览器中XML的应用 13.4.htm 直接对XML文档...
例如,Java处理服务器端逻辑,HTML提供静态页面结构,JavaScript负责前端交互,Ajax则使前后端通信更加流畅,而XPath帮助解析和操作XML数据。熟悉这些技术并掌握它们的结合使用,将使你能够构建功能丰富的、交互性强...