读书人

想做一个相仿csdn这样左边是树右边根据

发布时间: 2012-08-16 12:02:15 作者: rapoo

想做一个类似csdn这样左边是树右边根据左边局部刷新页面的网站
如题目,最好给我一段代码,只要action和jsp就好

[解决办法]
用ajax做和xtree struts做的
这是action

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.yourcompany.form.InfoBean;
import com.yourcompany.service.TreeInfo;
import com.yourcompany.struts.form.TestTreeForm;

/**
* MyEclipse Struts
* Creation date: 08-26-2008
*
* XDoclet definition:
* @struts.action path="/testTree" name="testTreeForm" scope="request" validate="true"
*/
public class TestTreeAction extends Action {
/*
* Generated Methods
*/

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestTreeForm testTreeForm = (TestTreeForm) form;// TODO Auto-generated method stub
TreeInfo objInfo=new TreeInfo();
try
{
PrintWriter out = response.getWriter();
ArrayList array=objInfo.getChild();
request.setCharacterEncoding("GBK");
response.setContentType( "text/xml" );
response.setCharacterEncoding( "GBK" );
StringBuffer sb = new StringBuffer("<?xml version='1.0' encoding='GBK'?><Infos>");
Iterator iter=array.iterator();
while(iter.hasNext())
{
InfoBean objBean=(InfoBean)iter.next();
int parentID = objBean.getParentID();
String childName = objBean.getChildName();
sb.append("<info>");
sb.append("<parentID>" + parentID + "</parentID>");
sb.append("<childName>" + childName + "</childName>");
sb.append("</info>");
}
sb.append("</Infos>");

out.write(sb.toString());
System.out.println(sb.toString());
out.close();
}catch(Exception e)
{
e.printStackTrace();
}

return null;
}
}

这是
jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>XTree</title>
<link type="text/css" rel="stylesheet" href="css/xtree.css">
</head>

<body>
<div style="position: absolute; width: 200px; top: 0px; left: 0px; height: 100%; padding: 5px; overflow: auto;">
<script src="js/xtree.js"></script>
</div>


</body>
</html:html>



然后你到网上下个xtree树的源代码


ajax代码


var req = false;
function getChild(url) {
if(WebFXTree.prototype.getSelected())
{
req = false;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if (req) {
req.open("GET", url, true);
req.setRequestHeader("Content-Type", "text/html;charset=GBK");
req.onreadystatechange = complete;
req.send(null);
}
}
}
function complete() {
if (req.readyState == 4) {
if (req.status == 200) {
var parentID = req.responseXML.getElementsByTagName("parentID");
var childName = req.responseXML.getElementsByTagName("childName");
var strID = new Array();
var strName = new Array();
for (var i = 0; i < parentID.length; i++) {
strID[i] = parentID[i].firstChild.data;
}

for (var i = 0; i < childName.length; i++) {
strName[i] = childName[i].firstChild.data;
}
buildTree(strID, strName);
}
}
}
function buildTree(strID, strName) {
for(var k=0;k<strID.length;k++)
{
WebFXTree.prototype.getSelected().add(new WebFXTreeItem(strName[k],"javaScript:getChild('http://localhost:8080/ajaxTree/testTree.do')"));
}
}

[解决办法]
csdn一直用的这个http://www.meizz.com/Web/Web.asp
你现在缺的不是jsp和action,是js和ajax的基本常识。
[解决办法]
CSDN树形菜单就是梅花雪MzTreeView,现在版本是2.0。

梅花雪中文网: http://www.meizz.com/Web/Web.asp

2.0版下载: http://www.blogjava.net/hijackwust/archive/2007/10/01/150116.html

先理解理解他的源码吧,再根据需求修改修改,完全可以实现的。

不过Struts2.0还没玩过,相信用2.0开发的企业不多吧

读书人网 >Java Web开发

热点推荐