php抓取网页数据插入数据库(创建一个ListList的对象list1层(图))
优采云 发布时间: 2021-12-03 07:13php抓取网页数据插入数据库(创建一个ListList的对象list1层(图))
如图所示:
2.控制器层:
后台是jsp上输入url的地方。
//回显汽车car分类
@RequestMapping("/loadCategory")
@ResponseBody
public List loadCategory(HttpServletResponse response){
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8"); //响应编码
System.out.println("jsp页面加载即触发");
List namelist = categoryService.findClassNames();
System.out.println("查询到的类别:"+namelist);
//list存放map,map存放kv值(json),namelist取需要的字段
List list = new ArrayList();
for (Category category : namelist) {
Map map = new HashMap();
//只取classid、ClassName即可。
String className = category.getClassName().toString();
String classid = category.getClassid().toString();
//map存放键值对
map.put("classid",classid);
map.put("className",className);
//list存放map
list.add(map);
System.out.println("json格式:"+list); //打印出来就成为了json格式
}
return list;
}
情况就是这样。一般来说,后端直接查询类别表,然后返回一个集合数据列表。但是我们制作下拉框只需要category id和category name,完全不需要其他额外的数据项。因此,上面的意思是:
Namelist去查询category表,得到一堆数据。
然后需要获取所需的 classid 和 className 字段对应的数据。
然后我们声明一个地图。 map用于存储键值对和需要返回的kv。也就是将需要的字段封装到map中。
然后声明一个list,方便带回前端或者转换成json格式。列表存储地图。
其次,如果前台用的是easyui,可以在最后加上@ResponseBody注解,可以直接自动转换成json格式发回前台。
这样就实现了我们需要动态填充数据库中数据的easyui下拉框。 3.效果图:
注意在上面的控制层:
for循环把map放入list的时候,总是同一个map,会导致后面的数据覆盖前面的数据,所以必须把新的HashMap操作放到for循环中,这样才能可以实现将多个map的kv值放入列表中。
List> list1 = new ArrayList>();
表示创建一个List对象list1。 List可以理解为一个链表,list1链表中的元素为Map类型元素,Map是String到Object的映射,即map可以存储key-value对。所以用list来存储地图,然后把list返回给前端jsp页面。