树状菜单是做网站时常用的一项技术,它可以像资源管理器那样清晰的看出网站包含的内容,起着提纲挈领的作用。下面给的这个例子,是jsp结合ajax的例子,这是在网上比较流行的例子。稍作修改供大家参考。
在这个例子下载之后,看到book..treeview里面有5个类,需要改的只有DbManager.java第11行的路径,和第17行的用户名和密码。还有将db.sql添加到mysql数据库中。
查看all.js文件中的脚本代码。
function postXmlHttp( submitUrl, callbackFunc ,loadFunc)
{
_postXmlHttpProcessPostChangeCallBack = callbackFunc;
_loadingFunction = loadFunc;
if(window.createRequest){
try{
_xmlHttpRequestObj=window.createRequest();
_xmlHttpRequestObj.open('POST',submitUrl,true);
_xmlHttpRequestObj.onreadystatechange=postXmlHttpProcessPostChange;
_xmlHttpRequestObj.send();}
catch(ee){}}
else if(window.XMLHttpRequest){
_xmlHttpRequestObj=new XMLHttpRequest();
_xmlHttpRequestObj.overrideMimeType('text/xml');
_xmlHttpRequestObj.open('POST',submitUrl,true);
_xmlHttpRequestObj.onreadystatechange=postXmlHttpProcessPostChange;
};处理POST请求
function parseSubTree(id)
{var el= document.getElementById( id );//得到id
var ulElmt= document.createElement("UL");//创建
节点
ulElmt.innerHTML=xmlHttpRequestObj.responseText;//用文本的响应方式,赋值给innerHTML
el.appendChild(ulElmt);
var images = el.getElementsByTagName("IMG");
images[0].setAttribute("src", "images/minus.gif");
images[0].setAttribute("onclick", "showHide('"+id+"')");
var aTag = el.getElementsByTagName("A");
aTag[0].setAttribute("onclick", "showHide('"+id+"')");//触发单击事件
var loadDiv= document.getElementById( "load" );
loadDiv.style.display="none";//判断style属性是否显示}
这是典型的ajax的方式通过文本响应得到数据,赋值给innerHTML。
其他的代码前面的原理的部分已经提到过了,不再详述。