JSP+XML构架网站的实例
来源:我要学习网 时间:06-11-12 点击: 点击这里收藏本文
生成XML的例子
在Java中创建XML文档字符串的真正代码可以分成几个方法和类。
启动XML生成过程的代码放在EJB方法里。这一实例会立即创建一个StringBuffer,以便存储生成的XML字符串。
StringBuffer xml = new StringBuffer();
xml.append(XmlUtils.beginDocument("/browse_find/browse.xsl", "browse", request));
xml.append(product.toXml());
xml.append(XmlUtils.endDocument("browse");
out.print(xml.toString());
后面的三个xml.append()变元本身就是对其他方法的调用。
产生文件头
第一个附加方法调用XmlUtils类来产生XML文件头。我们的Java Servlet中的代码如下:
public static String beginDocument(String stylesheet, String page)
{
StringBuffer xml = new StringBuffer();
xml.append(" ")
.append("xml-stylesheet href="")
.append(stylesheet).append(""")
.append(" type ="text/xsl"?> ");
xml.append("<").append(page).append("> ");
return xml.toString();
}
这段代码生成了XML文件头。标签把本文件定义为支持1.0版本的XML文件。第二行代码指向用以显示数据的正确样式表的位置。最后包括进去的是项级标签(本实例中为)。在文件末尾,只有标签需要被关闭。
填入产品信息
完成了文件头后,控制方法会调用Java对象来产生它的XML。本例中调用的是product对象。product对象使用两个方法来产生它的XML表示。第一个方法toXML()通过产生和标签来建立product节点。然后它会调用internalXML(),这样就能提供产品XML所需的内容。internalXML()是一系列的StringBuffer.append()调用。StringBuffer也被转换成字符串并返回给控制方法。
public String toXml()
{
StringBuffer xml = new StringBuffer(" ");
xml.append(internalXml());
xml.append(" ");
return xml.toString();
}
public String internalXml()
{
StringBuffer xml = new
StringBuffer(" ")
.append(productType).append(" ");
xml.append(" ").append(idValue.trim())
.append(" ");
xml.append(" ").append(idName.trim())
.append(" ");
xml.append(" ").append(page.trim())
.append(" ");
??
xml.append(" ").append(amount).append(" ");
xml.append(" ").append(vendor).append(" ");
xml.append(" ");
xml.append(" ").append(pubDesc).append(" ");
xml.append(" ").append(venDesc).append(" ";
??
return xml.toString();
}
关闭文件
最后,XMLUtils.endDocument()方法被调用。这个调用关闭XML标签(本例中为),并最终完成架构好的XML文件。来自控制方法的整个StringBuffer也转换成字符串,并返回给处理最初HTTP请求的servlet。
三、用XSL作为模板语言
为了得到HTML输出,我们把生成的XML文件和控制XML数据如何表示的XSL模板相结合。我们的XSL模板由精心组织的XSL和HTML标签组成。
开始建模板
我们的XSL模板开始部分与下面这段代码类似。第一行代码为必需代码,将本文件定义为XSL样式表。xmlns:xsl=属性引用本文件所使用的XML名称空间,而version=属性则定义名称空间的版本号。在文件的末尾,我们关闭标签。
把此文章收藏到: