EasyUI_tree+SpringMVC_2014.4.27

1.tree的概况

1.使用easyUI提供的文档:

1 $('#tt').tree({    
2     url:'user/toTree'   
3 });  

其实只要有一个url,并且在Controller中添加一个RequestMapping(toTree),这样通过controller来传递给tree一个json数据对象就可以。一般的格式为:

[{"id":424,"text":null},{"id":425,"text":null},{"id":390,"text":"4444"},{"id":391,"text":"撒旦法"},{"id":426,"text":"1234"},{"id":421,"text":null},{"id":427,"text":null},{"id":428,"text":"123"},{"id":429,"text":"撒旦法"},{"id":430,"text":"123"},{"id":431,"text":"123"},{"id":461,"text":"42314"},{"id":441,"text":"3213"}]

这段代码是我在response中拿到的。tree的初始化最少需要两项一个是ID,一个是text

2.具体实现方式

先说一下我自己的实现方式。因为至少要提供一个Tree的Json格式,在后台就要拼好这种json格式,具体代码如下

 1  1     @RequestMapping("/toTree")
 2  2     @ResponseBody
 3  3     public List<TreeType> toTree(){
 4  4         
 5  5         List<User> user = userManager.getAllUser();
 6  6         List<TreeType> list = new ArrayList<TreeType>();
 7  7         
 8  8         for(int i=0;i<user.size();i++){
 9  9             User u = user.get(i);
10 10             TreeType tt = new TreeType();
11 11             tt.setId(u.getId());
12 12             tt.setText(u.getUserName());
13 13             list.add(tt);
14 14         }
15 15         
16 16         return list;
17 17         
18 18     }
19 19     
treeController

 

其中TreeType的格式如下:

package com.tgb.web.viewmodel;

import java.util.List;

public class TreeType {
    
    private int id;
    private String text;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    

}
TreeType

 

这样,后台程序这样就可以搞出一个json格式的list,直接传递给前台了

 

3.总结

其实在真正实现的过程中,遇到了很多问题,有时候都是自己把问题想复杂了:

1.最开始是想在前台,通过拼<ul><li>xxxxx</li></ul>的方式来拼格式,最终格式是拼出来了,但是,显示的只是一个静态的文本样子。夭折,放弃!

2.后来就要在后台来搞,因为,我最初的后天数据只是一个List<String>类型,可是json的格式有点像map,都是kv的格式,所以通过iteritor遍历一下把List<String> 搞成了Map<String,String>,然后发现,其实这样也只是一个巨大的map数据,然后再Map外面又封装了一层List<Map<String,String>>,数据是成功的传过去了,但是,只是最后一条的数据,传递了12遍。。至今不晓得哪里出错了,源码如下:

 

 1 Map<String,String> treeMap = new HashMap<String,String>();
 2         Iterator<String> it = listUser.iterator();
 3         while(it.hasNext()){
 4         
 5             String temp = it.next();
 6             treeMap.put("id", temp);
 7             treeMap.put("text", temp);
 8             
 9             for(String str : treeMap.keySet()){
10                 System.out.println(str+"---values:--"+treeMap.get(str));
11             }
12             
13             listAll.add(treeMap);
14             
15         }
16         return listAll;
list<map<String,String>>

 

然后在同事指点下,也是没搞出来,又放弃。。用他教我的方法,成功的搞出来了。

 

3.通过这个错误的案例,我也渐渐有点明白了,在选择数据结构的方面是很重要的。

btw:

SpringMVC:中的Controller的返回值是一个modelAndView ,可能是一个数据模型,也可能是一个页面

@RequestMapping("xxxxx"):这个是用来在http中访问这个方法时,只需要按这个xxxx的写法就可以访问的到,或者也是可以通过前天远程调用的一个url。

@RequsetBody:这个是用来传递数据。也就是回传一个数据模型,例如本例中将List转换为了json对象。

 

以上只是一个个人观点,尚不知对错。。而且我仍在摸索中。。忘批评指正!

 

posted on 2014-04-27 10:51  linkZ  阅读(1270)  评论(0编辑  收藏  举报

导航