頁面ajax非同步請求
阿新 • • 發佈:2019-01-08
使用JQuery進行普通ajax非同步請求後臺的參考小例子
//驗證年度是否在資料庫中已經存在
//頁面部分JS y為年度的值 spanId 為頁面提示資訊的Id
後臺部分程式碼//ajax驗證年度是否已經存在 function ajax_request(y,spanId){ $.ajax({ type: "POST", url: "<%=webapp%>/admin/admin_checkYYYYRepeat.action", data: "yyyy="+y, async:false,//同步請求 success: function(msg){ //alert("---- AJAX返回訊息:" + msg); if(msg == "0"){ addWarnInfo(spanId,'*'); document.getElementById("yyyyIsExist").value = false; }else{ addWarnInfo(spanId,'*該年度已經存在,不能再新增!'); document.getElementById("yyyyIsExist").value = true; } }, error: function(msg){ alert("傳送失敗,請重新發送!"); return false; } }); }
//action部分 /** * 功能:校驗年度是否已經存在 * * @author lixinyao * @version 1.0 * @param yyyy * @return 0 表示不存在 1 表示已經存在 */ public void checkYYYYRepeat() {// Action方法切忌有引數否則無法呼叫 int count = adminService.yyyyIsExist(yyyy); System.out.println("count:"+count); HttpServletResponse response =response(); PrintWriter out = null; try { out = response.getWriter(); // writer引數最好轉成String,否則在頁面上可能出現異常情況 out.write(count+""); } catch (IOException e) { e.printStackTrace(); } finally { out.flush(); out.close(); } }
//注意 要獲得由前端JS傳來的值 action 必須 宣告變數 yyyy 並提供set get方法 //實現類部分 /** * 判斷年度是否已經存在 * @return */ public int yyyyIsExist(String yyyy){ StringBuffer sb = new StringBuffer(); sb.append(" select count(t.id) from t_object_job t where t.yyyy=? "); List list = null; List params = new ArrayList(); params.add(yyyy); try{ list = hibernateDao.queryBySqlWithParams(sb.toString(), params.toArray()); }catch(Exception e){e.printStackTrace();} if(list != null){ return Integer.valueOf(list.get(0).toString()); }else{ return 0; } }