求教一个问题,对MAP和LIST使用熟练的高手帮帮我,头疼很久了啊
这是数据:这是显示:
首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
求大神们帮帮忙啊!! --------------------编程问答-------------------- 图挂了,看不到 --------------------编程问答-------------------- 首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
--------------------编程问答--------------------
来这个地址吧!谢谢了!tieba.baidu.com/p/1523180971
这里有图,帮帮忙,谢谢!
这是需求:
由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
--------------------编程问答-------------------- Utils.getData(sql);这个方法执行完返回的是String二位数组吗 --------------------编程问答--------------------
是的,能帮我做一下吗?图在tieba.baidu.com/p/1523180971可以看到 --------------------编程问答-------------------- String [][] data = Utils.getData(sql);
for(int i=0;i<data[].length;i++){
for(int j=0;j<data[i][].length;j++){
}
}
拿二维数组处理 --------------------编程问答--------------------
关键是怎么关联起来,P_ID作为键, VALUE怎么放。你能把数据组合成显示的那样吗?帮我实现一下吧 --------------------编程问答-------------------- 要不就JSTL 结合EL标签
--------------------编程问答--------------------
关键公司没用SHH框架,也没有用JSTL标签,以前他们做类似这样的项目,都是用集合和循环就能解决,关键靠怎么去组合这些数据,怎么正确存放MAP和LIST。我做了好几天了,也是用MAP和LIST,可总会出现一些问题,比如一个员工是某一个项目的项目经理,再给他赋一个Co-manager角色,就会只显示他的Co-manager角色,也就是在存MAP时,由于KEY重复导致VALUE被覆盖了。 --------------------编程问答-------------------- 你应该把上边的5个表,取出来的数据写成一个程序的初始数据,然后别人实现你的算法,你就列了一个表,别人也不知道,你取出来是什么东西,然后怎么处理。
也就是你提供数据模型,然后大家帮人看看怎么实现算法。 --------------------编程问答-------------------- 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++;
}
--------------------编程问答--------------------
非常感谢!!!我等会就对照着实现一下 --------------------编程问答-------------------- 建议你学一学<c: 标签 <c:forEach,基础的html标签应用,建议你下载一个W3c开发文档看一下。。。
补充:Java , Web 开发