web前端多重筛选、json

来源:互联网 发布:全球数据交换中心 编辑:程序博客网 时间:2024/06/06 07:32

教学云WEB端的实现总结:

 

 目标要求:根据第三方教学云提供的资源,可以在平台后端对教 学云资源筛选、加载查看。

 

1、初步的形成思想:

    通过对教学云资源的获取,可以根据年级、科目以及出版社筛选来查询相应的资源信息。

 

2、实现过程出现的问题

   (1)在最初的根据年级、科目和出版社来筛选时,因为要三个条件一块执行,没有做到通过点击该选项获取到对应的id

 

      ◆在jsp页面:<a href="javascript:void(0)" class="now" GradeId="G04">一年级</a>

        当点击哪个链接时,class=now”就会在哪个链接下,从而确定所选择的id

 

      ◆在加载年级时,根据div层下的ulid,通过点击事件来获取li标签下的<a>超链接。

        具体代码为:

        $('#gradeList').on('click','li a',function(){

GradeId =$(this).attr('GradeId');//当点击时,获取当前的GradeId值;

loadSource(GradeId,CourseId,VersionId,ExtensionName);

});

          注:GradeId为年级名称的id值。

      ◆科目、版本同年级一样。

      

      ◆在对资源格式进行筛选时,和年级不同的是,资源格式是改变而不是点击,使用的是 change.

      

     (2)因为是从第三方教学云获取资源,所以在取资源的时候要根据第三方来取,通过在js中使用ajax

 

来获取资源。

 

      ◆ Map<String, String> paramMap = ActionUtil.getParameterMap();//获取前端返回的值

      

      ◆  HashMap<String,Object> paraMap = new HashMap<String,Object>();//声明一个HashMap

 

      ◆paraMap.put("JsonInfo", "{} "); //paraMap中放值;

      String returnjson = PostUtil.doPost(SystemConfig.getProperty("JIAOXUEYUN_URL"),paraMap);//根据条件取到资源;

      ◆  JSONArray jsonArray = JSONArray.fromObject(returnJson);//json对象转化为json数组。

        

      ◆  List<SourceVO> list = new ArrayList<SourceVO>();

for (int i=0;i<jsonArray.size();i++) {

JSONObject jsonObject = (JSONObject) jsonArray.get(i);

SourceVO item = new SourceVO();

item.setSource_data(jsonObject.toString());

item.setSource_type(jsonObject.getString("ExtensionName"));

item.setSource_id(jsonObject.getString("ResourceId"));

item.setSource_name(jsonObject.getString("ResourceName"));

item.setUpdateTime(jsonObject.getString("UpdateTime"));

item.setResourceSize(jsonObject.getString("ResourceSize"));

item.setBrowse_count(jsonObject.getInt("Browse_count"));

item.setPraise_count(jsonObject.getInt("Praise_count"));

item.setDownload_count(jsonObject.getInt("Download_count"));

item.setFav_count(jsonObject.getInt("Fav_count"));

item.setResourceUrl(jsonObject.getString("ResourceUrl"));

list.add(item);

}

//list来遍历取到的资源数据。

 

       (3)分页查询,在分页查询中根据第三方提供的接口、字段,当IsCount_size0时,统计记录大小,当IsCount_size1时,不统计记录大小,因为01都要使用,所以在方法使用过程中,我所采用的是重新写了一个方法,是获取总记录数的,可是结果却不尽人意,虽然都可以获取到,但是在使用时,两个方法不能同时存在一个jsp页面中。

            后来使用的方法是,在一个方法体中

paraMap.put("JsonInfo", "{} ");

String returnJson = PostUtil.doPost(SystemConfig.getProperty("JIAOXUEYUN_URL"),paraMap);

paraMap.put("JsonInfo", "{} ");

String totalJson = PostUtil.doPost(SystemConfig.getProperty("JIAOXUEYUN_URL"),paraMap);

JSONObject jsonObjectTotal = JSONObject.fromObject(totalJson);

ActionUtil.setTotal(jsonObjectTotal.getInt("Total"));//重点是这句,它是写好的,拿过来直接调用就可以了。可以直接获取到总记录数。

可悲的是我却不会,花了一上午写的还没这一句管用。。。。。

     通过这个方法就可以获取到了,并且可以在一起使用。

 

附:源码

          

1 0
原创粉丝点击