JAVA代码
public ModelAndView queryAddress(HttpServletResponse response,HttpServletRequest request){
List<String> ls1 = adressService.querySheng();
Map<String, List<String>> mapshi = adressService.queryShi();
Map<String, List<String>> mapqu = adressService.queryQu();
Map<String, String> mapshiresult = mapshiresult = new HashMap<String, String>();;
Map<String, String> mapquresult = new HashMap<String, String>();
//拼接市的json格式
StringBuffer json = null;
Set<String> set = mapshi.keySet();
Iterator<String> ir = set.iterator();
while(ir.hasNext()){
json = new StringBuffer();
json.append("[");
String str = ir.next().toString();
for(int i = 0; i<mapshi.get(str).size();i++){
json.append("\"");
json.append(mapshi.get(str).get(i));
json.append("\"");
if(i < mapshi.get(str).size()-1){
json.append(",");
}
}
json.append("]");
mapshiresult.put(str, String.valueOf(json));
}
StringBuffer jsonshi = new StringBuffer();;
Set<String> setshi = mapshiresult.keySet();
Iterator<String> irshi = setshi.iterator();
int i = 0;
jsonshi.append("{");
while(irshi.hasNext()){
i++;
String str = irshi.next().toString();
jsonshi.append("\""+str+"\":"+mapshiresult.get(str));
if(i<mapshiresult.size()){
jsonshi.append(",");
}
}
jsonshi.append("}");
String jsonshiresult = jsonshi.toString();
//拼接区Json格式
StringBuffer jsonqu = null;
Set<String> setqu = mapqu.keySet();
Iterator<String> irqu = setqu.iterator();
while(irqu.hasNext()){
jsonqu = new StringBuffer();
jsonqu.append("[");
String str = irqu.next().toString();
for(int j = 0; j<mapqu.get(str).size();j++){
jsonqu.append("\"");
jsonqu.append(mapqu.get(str).get(j));
jsonqu.append("\"");
if(j < mapqu.get(str).size()-1){
jsonqu.append(",");
}
}
jsonqu.append("]");
mapquresult.put(str, String.valueOf(jsonqu));
}
StringBuffer jsonqu1 = new StringBuffer();;
Set<String> setqu1 = mapquresult.keySet();
Iterator<String> irqu1 = setqu1.iterator();
int j = 0;
jsonqu1.append("{");
while(irqu1.hasNext()){
j++;
String str = irqu1.next().toString();
jsonqu1.append("\""+str+"\":"+mapquresult.get(str));
if(i<mapquresult.size()){
jsonqu1.append(",");
}
}
jsonqu1.append("}");
String jsonquresult = jsonqu1.toString();
ModelAndView mav = new ModelAndView("zhuce");
mav.addObject("sheng",ls1);
mav.addObject("shi",jsonshiresult);
mav.addObject("qu",jsonquresult);
return mav;
}
前台JS获取
//根据选择的省,加载市选项
function onchangsheng(key){
var shi = document.getElementById("user_shi");
var qu = document.getElementById("user_qu");
var map = ${shi};
shi.options.length=0;
qu.options.length=0;
shi.options.add(new Option("--请选择市--","--请选择市--"));
qu.options.add(new Option("--请选择区--","--请选择区--"));
for(var i=0;i<map[key].length;i++){
shi.options.add(new Option(map[key][i],map[key][i]))
}
}
//根据选择的市,加载区选项
function onchangshi(key){
var qu = document.getElementById("user_qu");
var map = ${qu};
qu.options.length=0;
qu.options.add(new Option("--请选择区--","--请选择区--"));
for(var i=0;i<map[key].length;i++){
qu.options.add(new Option(map[key][i],map[key][i]))
}
}
此效果为了实现三级联动。不使用AJAX的情况的下。