zTree 简介
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
java中使用zTree
将需要使用的 zTree v3.x 相关的 js、css文件分别放置到相应目录,并且保证相对路径正确.
先将Demo演示的框架源代码在自己的项目中演示出来
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'index.jsp' starting page
3.将ztree代码加入自己的项目中,进行测试
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
二级分类维护
4.在项目中使用Controll控制Service查询数据拼接ztree要使用的字符串
package com.senchen.shop.svs.back.impl;
import java.util.List;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import com.senchen.shop.entity.Kind;
import com.senchen.shop.manager.kind.kindManager;
import com.senchen.shop.manager.kindsec.KindSecondManager;
import com.senchen.shop.svs.back.KindService;
@Service
public class KindServiceImpl implements KindService {
Logger log=Logger.getLogger(getClass()); //以当前类路径创建日志对
@Resource
kindManager kmng;
@Resource
KindSecondManager secMng;
/**
* 查询所有的分类,返回 需要的字符串格式
* @return String
* [
{ id:1, pId:0, name:"父节点F1 - 展开",url:"<%=path%>/index.jsp", target:"twgdh"},
{ id:11, pId:1, name:"父节点11 - 折叠"},
{ id:111, pId:11, name:"叶子节点111"},
{ id:112, pId:11, name:"叶子节点112"},
{ id:113, pId:11, name:"叶子节点113"},
{ id:114, pId:11, name:"叶子节点114"},
]
* @throws RuntimeException
*/
@Override
public String getAllTreeStr() throws RuntimeException {
log.debug("日志1..查询 ");
List klist = kmng.findAll();
StringBuffer bf=new StringBuffer();
bf.append("[");
for (Kind k : klist) {
bf.append("{");
bf.append(" id:"+k.getKid()+",");
bf.append(" pId:"+k.getUpid()+",");
bf.append(" name:'"+k.getKindName()+"',");
bf.append(" url:'list.do?id="+k.getKid()+"',");
bf.append(" target:'twgdh'");
bf.append("},");
}
bf.append("]");
log.debug("日志2..封装成字符串 " + bf.toString());
return bf.toString();
}//getAllTreeStr()
}
5.在自己的ztree项目页面中使用字符串替换Demo中的字符串
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
二级分类维护
Log4j日志管理工具
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Log4j的配置
一.配置文件
Log4j默认的配置文件是log4j.properties,将该文件置于classpath下,容器启动时会初始化Log4j。Log4j把日志级别由低到高依次分为ALL、TRACE、DEBUG、INFO、WARN、ERROR、FITAL和OFF等。其中,级别高的会屏蔽低的信息。如果设置为WARN,则INFO、DEBUG都不会输出。
二.5个重要的概念
Log4j配置中有5个重要的概念:
日志记录器(Logger)Logger负责记录日志;
根记录器(rootLogger)rootLogger是所有记录器的父亲,任何记录器都可继承rooLogger的配置;
类别(category)category可以设置类别下所有的Logger,类似于java中的包,效果与Logger名字等价;
输出地(Appender)Appender负责输出到什么地方;
日志格式化器(Layout)Layout负责以什么格式输出、输出哪些附加信息(比如:时间、类名、方法名、所在行数等)。
在log4j.properties配置中,log4j.logger后面配置的是Logger,log4j.appender后面配置的是Appender,rootLogger直接用log4j.rootLogger配置。
三、1个log4j.properties配置实例
### Console ###
log4j.appender.AA=org.apache.log4j.ConsoleAppender
log4j.appender.AA.Target=System.out
log4j.appender.AA.layout=org.apache.log4j.PatternLayout
log4j.appender.AA.layout.ConversionPattern=%p [%C{1}:%L] %m%n
### File ###
log4j.appender.D=org.apache.log4j.FileAppender
log4j.appender.D.File=D://logs/log.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### root level ###
log4j.rootLogger=debug,AA
### spring level ###
log4j.logger.org.springframework=WARN
### your package level ###
log4j.logger.com.senchen=WARN
### your sub package level ###
log4j.logger.com.senchen.shop=debug
四.Java中使用Log4j
public class KindTreeController {
Logger log=Logger.getLogger(getClass()); //以当前类路径创建日志对
public String list(Model md){
log.debug("日志1...查询所有的分类,组成zTree字符串");//使用日志对象
String s = ksvs.getAllTreeStr();
md.addAttribute("zdata", s);
log.debug("日志2...保存到request中,转发");
return "/kind/kind_tree";
}//tree
}