StreetHandler.java
@Controller
@RequestMapping("street")public class StreetHandler {
private StreetService streetService;
public void setStreetService(StreetService streetService) {
this.streetService = streetService;
}
@RequestMapping("findStreetById")
public void findStreetById(Model model,String district_id,HttpServletResponse response){
int id=Integer.parseInt(district_id);
District district=new District();
district.setId(id);
List<Street> streets=streetService.findStreetByDistrict(district);
//System.out.println(streets);
JSONArray street = JSONArray.fromObject(streets);
//System.out.println(street);
response.setContentType("application/json;charset=utf-8");
try {
response.getWriter().print(street);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
前端JS的异步处理
<script type="text/javascript">
function th(){
var district_id = $("#district option:selected").val();
var content = "";
$.post(
"street/findStreetById.action",//url地址,使得异步响应,从数据库中得到结果
{"district_id":district_id},//这是返回去的结果集
function(data){//这是一个函数,对返回来的内容做一些动作
content+="<option selected value=''>--请选择--</option>";
for(var i = 0 ; i < data.length; i++){
content+="<option value='"+data[i].id+"'>"+ data[i].name+"</option>";
}
$("#street").html(content);
},
"json"//这表明是以json的数据格式返回的
);
}
</script>
HouseHandler中json代码,通过返回的城市的id获取所有城市,以json格式返回到前端,前端在js中进行解析
JSONArray street = JSONArray.fromObject(streets);
//System.out.println(street);
response.setContentType("application/json;charset=utf-8");
try {
response.getWriter().print(street);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List自动变成json数据需要的包
以下四个是依赖包
ezmorph-1.0.6.jar