📄 treetapestry.java.svn-base
字号:
package com.xino.tree;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.tapestry.IExternalPage;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
import Metis.Common.Web.Ext2.Tree.TreeNode;
import com.xino.dao.TreeDao;
import freemarker.template.Configuration;
import freemarker.template.Template;
/*
* $Id$
*
* Copyright (C)2002-2008 福建鑫诺.All rights reserved.
*
* TreeTapestry.java
*
* Original Author: 何则锐,2008-5-27
*
* 文件功能说明:
* <文件功能说明>
* History
* 版本号 | 作者 | 修改时间 | 修改内容
*/
public abstract class TreeTapestry extends BasePage implements IExternalPage {
@SuppressWarnings("unused")
//private static final Log log = LogFactory.getLog(TreeTapestry.class);
private String node;
private List<TreeNode> nodes = new ArrayList<TreeNode>();
public List<TreeNode> getChildNodes() {
// TODO Auto-generated method stub
List<TreeNode> nodes = new ArrayList<TreeNode>();
//通过数据库获取数据
TreeDao dao = new TreeDao();
//根据节点找出下级节点
nodes = dao.getAreaInfoListByCode(this.getNode());
/*TreeNode tn1 = new TreeNode();
tn1.setId(new UID().toString());
tn1.setName("子节点1");
tn1.setHasChild(true);
TreeNode tn2 = new TreeNode();
tn2.setId(new UID().toString());
tn2.setName("子节点2");
tn2.setHasChild(true);
TreeNode tn3 = new TreeNode();
tn3.setId(new UID().toString());
tn3.setName("子节点3");
tn3.setHasChild(false);
nodes.add(tn1);
nodes.add(tn2);
nodes.add(tn3);*/
return nodes;
}
public TreeNode getRoot() {
// TODO Auto-generated method stub
TreeNode tn = new TreeNode();
tn.setId("0");
tn.setName("广东省");
tn.setHasChild(true);
return tn;
}
@SuppressWarnings("unchecked")
public void activateExternalPage(Object[] obj, IRequestCycle cycle) {
HttpServletResponse req = cycle.getRequestContext().getResponse();
this.setNode(cycle.getRequestContext().getParameter("node"));
if (this.getNode().equals("extroot")) {
this.nodes = new ArrayList<TreeNode>();
this.nodes.add(getRoot());
} else {
this.nodes = getChildNodes();
}
//System.out.println(this.getNode());
// System.out.println("gfdgsdfg111");
req.setHeader("Pragma", "No-Cache");
req.setHeader("Cache-Control", "No-Cache");
req.setDateHeader("Expires", 0);
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(cycle.getRequestContext()
.getServlet().getServletContext(), "/ftl");
Map root = new HashMap();
root.put("nodes", this.getNodes());
req.reset();
req.setCharacterEncoding("utf-8");
ByteArrayOutputStream tempSteam = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(tempSteam);
try {
Template t = cfg.getTemplate("AjaxTreeNode.ftl");
t.process(root, pw);
} catch (Exception e) {
e.printStackTrace();
}
OutputStream out = null;
String jsonstr = tempSteam.toString();
//System.out.println(jsonstr);
try {
tempSteam.close();
req.setContentType("text/xml");
req.setCharacterEncoding("utf-8");
out = req.getOutputStream();
out.write(jsonstr.getBytes("utf-8"));
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
public List<TreeNode> getNodes() {
return nodes;
}
public void setNodes(List<TreeNode> nodes) {
this.nodes = nodes;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -