教學雲WEB端的實現總結:
目標要求:根據第三方教學雲提供的資源,可以在平臺後端對教 學雲資源篩選、加載查看。
1、初步的形成思想:
通過對教學雲資源的獲取,可以根據年級、科目以及出版社篩選來查詢相應的資源信息。
2、實現過程出現的問題
(1)在最初的根據年級、科目和出版社來篩選時,因爲要三個條件一塊執行,沒有做到通過點擊該選項獲取到對應的id。
◆在jsp頁面:<a href="javascript:void(0)" class="now" GradeId="G04">一年級</a>
當點擊哪個鏈接時,class=“now”就會在哪個鏈接下,從而確定所選擇的id。
◆在加載年級時,根據div層下的ul的id,通過點擊事件來獲取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_size爲0時,統計記錄大小,當IsCount_size爲1時,不統計記錄大小,因爲0和1都要使用,所以在方法使用過程中,我所採用的是重新寫了一個方法,是獲取總記錄數的,可是結果卻不盡人意,雖然都可以獲取到,但是在使用時,兩個方法不能同時存在一個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"));//重點是這句,它是寫好的,拿過來直接調用就可以了。可以直接獲取到總記錄數。
可悲的是我卻不會,花了一上午寫的還沒這一句管用。。。。。
通過這個方法就可以獲取到了,並且可以在一起使用。
附:源碼