这是数据:这是显示:首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!求大神们帮帮忙啊!!

解决方案 »

  1.   

    首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
      

  2.   

    来这个地址吧!谢谢了!tieba.baidu.com/p/1523180971
    这里有图,帮帮忙,谢谢!这是需求:由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
      

  3.   

    Utils.getData(sql);这个方法执行完返回的是String二位数组吗
      

  4.   


    是的,能帮我做一下吗?图在tieba.baidu.com/p/1523180971可以看到
      

  5.   

    String [][] data = Utils.getData(sql);
    for(int i=0;i<data[].length;i++){
       for(int j=0;j<data[i][].length;j++){   }
    }
    拿二维数组处理
      

  6.   


    关键是怎么关联起来,P_ID作为键, VALUE怎么放。你能把数据组合成显示的那样吗?帮我实现一下吧
      

  7.   


    关键公司没用SHH框架,也没有用JSTL标签,以前他们做类似这样的项目,都是用集合和循环就能解决,关键靠怎么去组合这些数据,怎么正确存放MAP和LIST。我做了好几天了,也是用MAP和LIST,可总会出现一些问题,比如一个员工是某一个项目的项目经理,再给他赋一个Co-manager角色,就会只显示他的Co-manager角色,也就是在存MAP时,由于KEY重复导致VALUE被覆盖了。
      

  8.   

    for example
    String[][] all_project = Utils.getData(sql);
    Map<String, List<String[][]>> pjMap = new LinkedHashMap<String, List<String[][]>>();
    for (String[] s : all_project) {
        if (! pjMap.containsKey(s[0])) {
            pjMap.put(s[0], new ArrayList<String[][]>());
        }
        pjMap.get(s[0]).add(s);
    }String[][] my_project = Utils.getData(sql);
    Map<String, List<String[][]>> mpMap = new LinkedHashMap<String, List<String[][]>>();
    for (String[] s : my_project) {
        if (! mpMap.containsKey(s[0])) {
            mpMap.put(s[0], new ArrayList<String[][]>());
        }
        mpMap.get(s[0]).add(s);
    }String[][] my_manager = Utils.getData(sql);
    Map<String, List<String[][]>> mmMap = new LinkedHashMap<String, List<String[][]>>();
    for (String[] s : my_manager) {
        if (! mmMap.containsKey(s[0])) {
            mmMap.put(s[0], new ArrayList<String[][]>());
        }
        mmMap.get(s[0]).add(s);
    }String[][] my_task = Utils.getData(sql);
    Map<String, List<String[][]>> mtMap = new LinkedHashMap<String, List<String[][]>>();
    for (String[] s : my_task) {
        if (! mtMap.containsKey(s[0])) {
            mtMap.put(s[0], new ArrayList<String[][]>());
        }
        mtMap.get(s[0]).add(s);
    }String[][] my_role = Utils.getData(sql);
    Map<String, List<String[][]>> mrMap = new LinkedHashMap<String, List<String[][]>>();
    for (String[] s : my_role) {
        if (! mrMap.containsKey(s[0])) {
            mrMap.put(s[0], new ArrayList<String[][]>());
        }
        mrMap.get(s[0]).add(s);
    }String[][] table = new String[pjMap.size()+1][4];
    table[0][0] = "序号";
    table[0][1] = "项目名称";
    table[0][2] = "任务名称";
    table[0][3] = "角色名称";
    int index = 1;
    StringBuilder[] buf = new StringBuilder[2];
    for (int i=0; i<buf.length; i++) {buf[i] = new StringBuilder();}
    List<String[][]> list = null;
    for (Map.Entry<String, String[][]> e : pjMap.entrySet()) {
        table[index][0] = String.valueOf(index);  //序号
        table[index][1] = e.getValue().get(0)[1]; //项目名称    buf[0].delete(0, buf[0].length());
        buf[1].delete(0, buf[1].length());
        if (mtMap.containsKey(e.getKey())) { //任务名称
             list = mtMap.get(e.getKey());
             for (String[][] s : list) {
                 buf[0].append(s[1]).append("\n");
                 buf[1].append("负责人").append("\n");
             }
             buf[0].delete(buf[0].length()-1, buf[0].length());
             table[index][2] = buf[0].toString();
        } else {
            table[index][2] = "无";
        }
        
        if (buf[1].length() > 0) {
            buf[1].delete(buf[1].length()-1, buf[1].length());
        else {
            if (mmMap.containsKey(e.getKey())) {
                buf[1].append("项目经理").append("/");
            }
            if (mp.containsKey(e.getKey())) {
                buf[1].append("参与者").append("/");
            }
            if (mr.containsKey(e.getKey())) {
                buf[1].append("Co-manager");
            }
        }
        table[index][3] = buf[1].toString();
        
        index++;
    }
      

  9.   

    建议你学一学<c: 标签 <c:forEach,基础的html标签应用,建议你下载一个W3c开发文档看一下