List<Map> letterList = this.getHanton().getEmployeeDAO()
.getLetterName(comCode);
Map parent_dataMap = new HashMap();
Map dataMap = new HashMap();
List<Map> parent_datalist = new ArrayList<Map>();
for (Map m1 : letterList) {
parent_datalist = this.getHanton().getEmployeeDAO()
.getCompNameByLetterName(comCode,
m1.get("LETTER_NAME").toString());
parent_dataMap.put(m1.get("LETTER_NAME"), parent_datalist); // List<Map> compList = this.getHanton().getEmployeeDAO()
// .getCompName(comCode);
}
for (Map m : parent_datalist) {
String test1 = m.get("COMP_NAME").toString();
List datalist = this.getHanton().getEmployeeDAO()
.findByCompName(comCode, m.get("COMP_NAME").toString(),
conkind);
// dataList.put("name", );
dataMap.put(m.get("COMP_NAME"), datalist);
// dataMap.put("numList",datalist.size());
}
代码如上,为什么我的parent_datalist只能获得一个值?
for (Map m1 : letterList) {
parent_datalist = this.getHanton().getEmployeeDAO()
.getCompNameByLetterName(comCode,
m1.get("LETTER_NAME").toString());//这里总是获取个新的parent_datalist
parent_dataMap.put(m1.get("LETTER_NAME"), parent_datalist); // List<Map> compList = this.getHanton().getEmployeeDAO()
// .getCompName(comCode);
}
检查一下这块代码吧,不清楚逻辑是什么,
parent_datalist = this.getHanton().getEmployeeDAO()
.getCompNameByLetterName(comCode,
m1.get("LETTER_NAME").toString());//这里总是获取个新的parent_datalist
List<Map> letterList = this.getHanton().getEmployeeDAO()
.getLetterName(comCode);
Map parent_dataMap = new HashMap();
Map dataMap = new HashMap();
//List<Map> parent_datalist = new ArrayList<Map>();
for (Map m1 : letterList) {
List<Map> parent_datalist = this.getHanton().getEmployeeDAO()
.getCompNameByLetterName(comCode,
m1.get("LETTER_NAME").toString());
parent_dataMap.put(m1.get("LETTER_NAME"), parent_datalist); // List<Map> compList = this.getHanton().getEmployeeDAO()
// .getCompName(comCode);
for (Map m : parent_datalist) {
String test1 = m.get("COMP_NAME").toString();
List datalist = this.getHanton().getEmployeeDAO()
.findByCompName(comCode, m.get("COMP_NAME").toString(),
conkind);
// dataList.put("name", );
dataMap.put(m.get("COMP_NAME"), datalist);
// dataMap.put("numList",datalist.size());
}
}
页面传值代码如下:this.setAttribute(request, "parent_datalist", parent_dataMap);
this.setAttribute(request, "datalist", dataMap);
不知道为什么你所有东西都要放到Map里,建两个domain对象不行吗?
你的业务我不熟悉,我大概写了这么几个类,你参考以下.还有通过comName或者letterName获得company应该单独放在一个类里public class Company {
private String comName;
private String comCode;
private Letter letter;
public String getComName() {
return comName;
} public void setComName(String comName) {
this.comName = comName;
} public String getComCode() {
return comCode;
} public void setComCode(String comCode) {
this.comCode = comCode;
} public Letter getLetter() {
return letter;
} public void setLetter(Letter letter) {
this.letter = letter;
}
}
public class Letter {
private List<Company> companys; public List<Company> getCompanys() {
return companys;
} public void setCompanys(List<Company> companys) {
this.companys = companys;
}
}
public interface CompanyService {
public Company getCompanyByName(String comName);
public List<Company> getCompanyByLeeter(Letter letter);
}
不用现在这种2个DATALIST的。
只要把Map dataMap = new HashMap();
放在第一个FOR循环语句里就可以了!