📄 treenodes.java
字号:
package blue.lip.tags;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class TreeNodes extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
// private BlueTreeTag BlueTreeTag=new BlueTreeTag();
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter out = response.getWriter();
String node_id=request.getParameter("node");
String level=request.getParameter("level");
// System.out.println("进入servlet");
// System.out.println(node_id+":"+level);
if(node_id==null || "".equals(node_id)){
throw new ServletException("节点ID参数错误!");
}
if(level==null || "".equals(level)){
throw new ServletException("节点级别参数错误!");
}
try {
out.println(this.createNodeTree(node_id, Integer.parseInt(level)+1));
}
catch (Exception ex) {
ex.printStackTrace();
throw new ServletException("树请求异常:"+ex.getMessage());
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public void destroy() {
}
public String createNodeTree(String node_id,int level)throws Exception {
StringBuffer result=new StringBuffer();
BlueTreeFactory treeFactory = new BlueTreeFactory();
System.out.println("haha:"+BlueTreeTag.blueClass);
BlueTreeInterFace tree = (BlueTreeInterFace) treeFactory.create(BlueTreeTag.blueClass);
List elements = null;
elements = tree.getTreeElements(node_id);
//开始创建树
result.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"");
result.append(BlueTreeTag.styleClass);
result.append("\">");
//创建第N级节点
for (int i = 0; i < elements.size(); i++) {
BlueTreeData treeData = new BlueTreeData();
treeData = (BlueTreeData) elements.get(i);
//加超连接头
//===================================================
result.append("<tr onMouseOver=\"this.className='");
result.append(BlueTreeTag.onMouseOver);
result.append("'\" onMouseOut=\"this.className='");
result.append(BlueTreeTag.onMouseOut);
result.append("'\">");
result.append("<td>");
//根据节点级别加递进线图片
//===================================================
for(int j=1;j<level;j++){
result.append("<img align=\"absmiddle\" src=\"");
result.append(BlueTreeTag.imageURL);
result.append(BlueTreeTag.lineImg);
result.append("\" class=\"");
result.append(BlueTreeTag.imgClass);
result.append("\">");
}
//===================================================
result.append("<a class=\"");
result.append(BlueTreeTag.linkClass);
result.append("\" href=\"");
if((treeData.isIschild() && BlueTreeTag.isFolderURL) || !treeData.isIschild()){
// System.out.println("目录连接URL");
if(BlueTreeTag.isUseDataURL){
result.append(treeData.getUrl());
}else{
result.append(BlueTreeTag.blueURL);
}
//添加节点连接参数
result.append("?");
result.append("node=");
result.append(treeData.getId());
}else{
// System.out.println("目录不连接URL");
result.append("javascript:void(null);");
}
result.append("\" target=\"");
result.append(BlueTreeTag.target);
//添加节点单击事件
//===================================================
if(treeData.isIschild()){
result.append("\" onClick=\"clickTreeNode('");
result.append(treeData.getId());
result.append("','");
result.append(level);
result.append("','");
result.append(BlueTreeTag.styleClass);
result.append("','");
result.append(BlueTreeTag.imageURL);
result.append("','");
result.append(BlueTreeTag.imgClass);
result.append("','");
result.append(BlueTreeTag.lineImg);
result.append("','");
result.append(BlueTreeTag.endLineImg);
result.append("','");
if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
result.append(treeData.getOpenimg());
}else{
result.append(BlueTreeTag.fileImg);
}
result.append("','");
if ( (i + 1) != elements.size()) {
result.append(BlueTreeTag.openImg);
result.append("','");
result.append(BlueTreeTag.closeImg);
}else{
result.append(BlueTreeTag.endFolderOpenImg);
result.append("','");
result.append(BlueTreeTag.endFolderCloseImg);
}
result.append("','");
if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
result.append(treeData.getOpenimg());
result.append("','");
result.append(treeData.getCloseimg());
}else{
result.append(BlueTreeTag.folderOpenImg);
result.append("','");
result.append(BlueTreeTag.folderImg);
}
result.append("');");
}
//===================================================
result.append("\">");
//===================================================
//加节点展开关闭图片
result.append("<img align=\"absmiddle\" class=\"");
result.append(BlueTreeTag.imgClass);
result.append("\" id=\"sign_img_");
result.append(level);
result.append("_");
result.append(treeData.getId());
result.append("\" src=\"");
result.append(BlueTreeTag.imageURL);
if((i+1)!=elements.size()){
if (treeData.isIschild()) {
result.append(BlueTreeTag.closeImg);
}
else {
result.append(BlueTreeTag.elementLineImg);
}
}else{
if (treeData.isIschild()) {
result.append(BlueTreeTag.endFolderCloseImg);
}
else {
result.append(BlueTreeTag.endLineImg);
}
}
result.append("\">");
//加节点图片
result.append("<img align=\"absmiddle\" class=\"");
result.append(BlueTreeTag.imgClass);
result.append("\" id=\"node_img_");
result.append(level);
result.append("_");
result.append(treeData.getId());
result.append("\" src=\"");
result.append(BlueTreeTag.imageURL);
if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
result.append(treeData.getOpenimg());
}else{
if (treeData.isIschild()) {
result.append(BlueTreeTag.folderImg);
}
else {
result.append(BlueTreeTag.fileImg);
}
}
result.append("\"> ");
//加节点名字
result.append(treeData.getName());
//加超连接尾
//===================================================
result.append("</a>");
//===================================================
result.append("</td>");
result.append("</tr>");
//加下一级节点空间
if(treeData.isIschild()){
result.append("<tr>");
result.append("<td style=\"display:none;\" id=\"tree_");
result.append(level);
result.append("_");
result.append(treeData.getId());
result.append("\"> ");
result.append("</td>");
result.append("</tr>");
}
}
result.append("</table>");
return result.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -