jquery 树型(Tree)目录(一)
来源:互联网 发布:淘宝不能交保证金 编辑:程序博客网 时间:2024/05/10 07:21
第一步:从数据库中取得数据,并封装为map集合,如下代码:
@Controller
@Results(value={@Result(name = "success", type = "chain", location = "channel"),
@Result(name="channelJson",type="json")})
public class ChannelTreeAction extends PersistAction{
private static final long serialVersionUID = 1L;
@Autowired
ChannelService channelService; //要取数据库中数据的service
private List channelList = new ArrayList(); //数据集合
//总数据map集合
private Map allChannel = new HashMap();
//树节点map集合
private Map> rootTree = new HashMap>();
/**
*此方法用于json封装
*/
public String channeTree(){
channelList = channelService.findAll(); //从数据库中取出所有数据,并放到集合中
Collections.sort(channelList) ; //对集合进行排序
List li = new ArrayList(); //声明一个临时集合,用于存放“根节点”
for(Channel ch:channelList){ //对集合进行迭代
allChannel.put(ch.getChannelId()+"", ch); //将数据以自己id做key,以对象本身做value,放到map集合中
if(ch.getChannelId()==1){ //产生根节点,此处重要,用你已知条件产生,此处我用对象的id=1产生
li.add(ch);
}
}
for(Channel rootChannel:li){ //迭代临时存放"根节点"的集合
decreaseTree(rootChannel.getChannelId()+""); //调用“递归树”方法
}
return "channelJson";
}
//递归树
private void decreaseTree(String channelID){
List frequencyLsit = new ArrayList();//临时创建的存放次级目录的集合
for(Channel ch:channelList){ //迭代数据集合,取出符合条件的下一级目录
if(channelID.equals(ch.getParent().getChannelId()+"") && ch.getChannelId()!=1){ //下一级目录的控制条件
frequencyLsit.add(ch); //添加到“临时存放次级目录集合”中
}
}
if(!frequencyLsit.isEmpty()){ //如果“次级目录集合”不为空,则执行
rootTree.put(channelID,frequencyLsit);//以父节点的id作为key,以子节点的集合作为value放到“树节点map集合”中
for(Channel fq:frequencyLsit){ //迭代“次级目录集合”
decreaseTree(fq.getChannelId()+""); //调用自己方法完成递归
}
}
}
public List getChannelList() {
return channelList;
}
public void setChannelList(List channelList) {
this.channelList = channelList;
}
public Map getAllChannel() {
return allChannel;
}
public void setAllChannel(Map allChannel) {
this.allChannel = allChannel;
}
public Map> getRootTree() {
return rootTree;
}
public void setRootTree(Map> rootTree) {
this.rootTree = rootTree;
}
public void setChannelService(ChannelService channelService) {
this.channelService = channelService;
}
}
**************************************************************************************************************
- jquery 树型(Tree)目录(一)
- jquery 树型(Tree)目录(二)
- jquery 树型(Tree)目录(三)
- jquery easyui Create Async Tree (异步加载目录树)
- 【JQuery】熟能生巧JQuery(一)——目录
- jquery tree
- Jquery tree
- jquery tree
- jquery tree
- jquery tree
- 为jQuery EasyUI tree增加搜索功能(一)
- jquery 实现原理一:文件目录结构概览
- tree 目录的编辑
- EasyUi---tree 导航目录
- $.tree 目录树总结
- 目录一
- Jquery Simple Tree
- jQuery File Tree(翻译)
- Android 文件压缩和解压
- 如何查看本机flash版本
- JS-Tree控件总结
- 文本框事件
- List、LinkedHashMap循环
- jquery 树型(Tree)目录(一)
- 用JavaScript改变表单中Type的属性(IE和火狐都兼容)
- Oracle 外连接和 (+)号的用法
- jquery 树型(Tree)目录(二)
- Openoffice安装中文字体
- jquery 树型(Tree)目录(三)
- graphics.h
- 基础练习二
- source insight 注册码