基于SSH架构上的ajax翻页(json+prototype+jstemplate)
简单实现,不用对TMD的一堆的js的api了解,俺还不是js专员,写的太烂,还是java比较贴心啊。
实现流程:页面new Ajax.Request()==》action中获得page对象==》转换为json对象,保存到response中==》在页面中处理返回对象var data? = res.responseText.evalJSON();(prototype1.5.1支持)==》调用jstemplate模板引擎对页面进行重组$("output").innerHTML = TrimPath.processDOMTemplate("template_jst", data) ,翻页完成了。
具体代码:
页面请求:
js 代码
- function?ajaxpage(pno){ ??
- ????var?url?=?"${ctx}/admin/usergroup.do?actionMethod=pageAjaxUser"; ??
- ????var?pars?=?"pageno="+pno; ??
- ????var?myAjax?=?new?Ajax.Request(url,?{method:?'get',?parameters:?pars,?onComplete:?showResult}); ??
- } ??
- function?showResult(res){ ??
- ????var?data??=?res.responseText.evalJSON(); ??
- ?????$("output").innerHTML?=?TrimPath.processDOMTemplate("template_jst",?data); ??
- }??
?
action:
java 代码
- public?ActionForward?pageAjaxUser(ActionMapping?mapping,?ActionForm?form, ??
- ????????????HttpServletRequest?request,?HttpServletResponse?response) ??
- ????throws?Exception?{ ??
- ????????try?{ ??
- ????????????String?pno?=?request.getParameter("pageno"); ??
- ????????????int?pageNo?=?1; ??
- ????????????if?(?pno?!=?null?||?!"".equals(pno)){ ??
- ????????????????pageNo?=?Integer.parseInt(pno); ??
- ????????????} ??
- ????????????Page?page?=?userManager.query(pageNo,?10); ??
- ????????????Object?o?=?page.getResult(); ??
- ????????????if?(?o?!=?null?){ ??
- ????????????????List?l?=?(List)o; ??
- ????????????????JSONObject?json?=?new?JSONObject(); ??
- ????????????????json.put("users",?ToJSONArray(l)); ??
- ????????????????json.put("page",?ToJSONObject(page)); ??
- ????????????????saveJSON(response,?json); ??
- ????????????} ??
- ????????}?catch?(Exceptio