• 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对象。

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

  • 相关阅读:
    IDEA复制module
    input输入框限制输入数字(含小数)
    毕设周总结---3
    皮尔森相关系数算法
    毕设周总结---2
    毕设周总结---1
    解释器模式实例
    架构模式——解释器模式
    课后作业---质量属性
    软件架构师如何工作
  • 原文地址:https://www.cnblogs.com/weizizhe/p/3693770.html
Copyright © 2020-2023  润新知