想做一个类似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开发的企业不多吧