各层的内容通过异步得到xml数据,并对每个模块用一个xsl文件解析,将解析结果放入指定层
这里只显示主要的代码
1> jsp页面上定义层的id, 并在form中指定需要异步加载数据的js方法
<form action="javascript:showAllXML();"> //调用异步加载数据的js方法
<div id="swgl"> //页面上显示数据的层
</form>
2> js文件里的方法
//各个层的全局变量:
var lgwgl_swgl = document.getElementById("swgl");
//进行异步调用的函数
function doAjax(url,doNext,isXML){
var req = newXMLHttpRequest();
//回调
req.onreadystatechange = getReadyStateHandler(req, doNext,isXML);
req.open("GET", url, true);
//不要被缓存
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.setRequestHeader("If-Modified-Since","0");
req.send();
}
//显示所有模块内容(入口函数,在index.jsp中调用该函数)
function showAllXML(){
//异步调用得到xml数据并解析
doAjax(basePath+"/action/fileListAction.do?method=getPageList",showGwgl,1);
//showGwgl:被调用的函数名。
}
//异步得到xml后进行解析并将解析结果放入指定层的各个函数
function showGwgl(xmlNode){
var myxsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
myxsl.async = false;
myxsl.load(basePath+"/xsl/rssGw.xsl"); //指定解析的xsl文件为:rssGw.xsl
lgwgl_swgl.innerHTML = unescape(xmlNode.transformNode(myxsl)); //指定解析结果显示在lgwgl_swgl层
}
3> 控制层。被js中的doAjax调用的fileListAction中的getPageList方法。
public ActionForward getPageList(ActionMapping mapping,
ActionForm form, HttpServletRequest req, HttpServletResponse resp) {
List infoList = baseDAO.getList();//从持久层获取数据
Xml xml = new Xml();
// 调用toXml_dbgz方法,将结果封装为xml文件
String strXml = xml.toXml_dbgz(infoList);
resp.setContentType("text/xml;charset=GBK");
resp.getWriter().write(strXml);
return null;
}
//封装结果为xml文件的方法
public String toXml_dbgz(List infoList){
StringBuffer xml = new StringBuffer();
xml.append("<?xml version=\"1.0\" encoding=\"GBK\"?>\n");
xml.append("<channel>\n");
if(infoList!=null){
long wfId = 0;//工作流ID
long bus_Id = 0;//收文ID
String title = "";//标题
ZybFilesForList file = null;
for(int i=0;i<infoList.size();i++){
xml.append("<item>\n");
file= (ZybFilesForList)infoList.get(i);
wfId = file.getEntryId().longValue();//工作流id
bus_Id = file.getBus_Id();//收文id
title = file.getTitle();//标题
if(WorkFlowTools.checkString(title))
xml.append("<title>"+toGeneralXmlStr(title)+"</title>\n");
else
xml.append("<title>无标题</title>\n");
xml.append("<acceptDate>"+DateTools.getDaySimple(file.acceptDate)+"</acceptDate>\n");
xml.append("<titleLink>view("+wfId+","+bus_Id+")</titleLink>\n"); //定义一个链接,view为js方法名,wfId和bus_Id为参数
xml.append("<tableName>"+file.getTableName()+"</tableName>\n");
xml.append("<workType>"+file.getWorkType()+"</workType>\n");
xml.append("<workLink>viewInWF("+wfId+","+bus_Id+")</workLink>\n");
xml.append("</item>\n");
}
}else{
.....
}
}
4> xsl文件。js的showGwgl方法中指定的解析文件:rssGw.xsl
<?xml version="1.0" encoding="gbk"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/channel">
<dl>
<xsl:for-each select="item">
<dd>
<xsl:if test="title!=''">
<xsl:if test="tableName='szs_sw'"><!-- 收文 -->
<img src="/myDoSZS/images/firstpage/ico_b.gif" alt="收文" />
</xsl:if>
<xsl:if test="tableName='szs_fw'"><!-- 发文 -->
<img src="/myDoSZS/images/firstpage/ico_y.gif" alt="正式发文" />
</xsl:if>
<xsl:if test="tableName='szs_qb'"><!-- 签报 -->
<img src="/myDoSZS/images/firstpage/ico_g.gif" alt="其他发文" />
</xsl:if>
</xsl:if>
<a href="javascript:{titleLink}" title='{title}'>
<xsl:value-of select="title"/>
</a>
</dd>
<dt>
<xsl:value-of select="acceptDate"/>
<xsl:text>   </xsl:text> <!--  显示为空格 -->
<xsl:if test="workType='0'"><!-- 签收 -->
<a href="javascript:{workLink}">
<xsl:text>签收</xsl:text>
</a>
</xsl:if>
<xsl:if test="workType='1'"><!-- 编辑 -->
<a href="javascript:{workLink}">
<xsl:text>编辑</xsl:text>
</a>
</xsl:if>
</dt>
</xsl:for-each>
</dl>
</xsl:template>
</xsl:stylesheet>
分享到:
相关推荐
主要实现的是XML与CSS、XML与XSL及在页面中直接调用XML的数据,原理很简单。
xml+xsl分页原理:在xsl中,遍历节点的时候,可以获取当前节点的位置,而且还能限制显示特定位置的节点,例如有18条记录,可以在xsl中设置只显示第1-6条,也可以设置只显示第7-12条,再配合客户端脚本,就可以动态...
xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页
xsl解析xml生成表格,表格行动态隐藏与显示,有一定的参考价值
简单的xml与xsl实例简单的xml与xsl实例简单的xml与xsl实例简单的xml与xsl实例简单的xml与xsl实例
纯html标签静态调用xml文件并显示,不包含js方法。 以及xsl对xml文件的的显示修饰方法
在前面的章节中,我们解释了如何用XSL在浏览器中将XML文档转换成HTML,窍门 就是让JavaScript使用一个XML解析器来进行转换。但是当浏览器不支持XML解析 器时,这种方法是不奏效的。要使XML数据对所有浏览器都可用,...
用 xsl 中的各种函数为 XML 显示提供灵活性
在开发过程中,遇到事先定义好的样式文件与xml文件内容转换,将xml文件按照样式文件进行输出.
XML+xsl讲XML文档的内容用xsl建表。
XML+XSL/FO生成PDF文件Demo,主要用于Fop插件,算是个小型练习项目
Xsl与xml结合Xsl与xml结合Xsl与xml结合Xsl与xml结合Xsl与xml结合
要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示 XML文件提供了一个很好的解决方案。本文的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交...
5.4 用XSL控制XML文档内容在浏览器中的显示 5.5 XML数据岛及其应用 5.6 XML DTD及XML Schema 5.7 XML DOM及其编程实例 5.8 XML文档的安全性 5.9 XPATH、XLINK和XPOINTER简介 5.10 XML与数据库 5.11 XML的应用和发展...
该软件主要是用于XML转换XSL,可以直观的浏览转换的结果以及保存结果。是非常实用的工具软件。进行各自存放路径的选择后,单击“转换”就可以了
xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子
JSON解析xml 带xsl样式,有多个实例,可自行学习
javaxml,xsl,html文件转换[定义].pdf
xml xsl网页生成,一个很小的测试demo,供大家学习
xml与xsl的小实例,对你学习xml没什么用,不过交一次作业嘛。。。。