这是数据:这是显示:首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!求大神们帮帮忙啊!!
调试欢乐多
这里有图,帮帮忙,谢谢!这是需求:由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
是的,能帮我做一下吗?图在tieba.baidu.com/p/1523180971可以看到
for(int i=0;i<data[].length;i++){
for(int j=0;j<data[i][].length;j++){ }
}
拿二维数组处理
关键是怎么关联起来,P_ID作为键, VALUE怎么放。你能把数据组合成显示的那样吗?帮我实现一下吧
关键公司没用SHH框架,也没有用JSTL标签,以前他们做类似这样的项目,都是用集合和循环就能解决,关键靠怎么去组合这些数据,怎么正确存放MAP和LIST。我做了好几天了,也是用MAP和LIST,可总会出现一些问题,比如一个员工是某一个项目的项目经理,再给他赋一个Co-manager角色,就会只显示他的Co-manager角色,也就是在存MAP时,由于KEY重复导致VALUE被覆盖了。
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++;
}