`
huttoncs
  • 浏览: 198979 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

AJAX请求及json对象封装小demo

阅读更多
js中的ajax请求方法
function query(){
var stuName = $("#stuName").val();
var requestUrl = "/s2sh/student/query.action";
var currentPageIndex = $("span[class='currentPageIndex']").val();
var pageSize =$("input[class='pageSize']").val();
$.ajax( {
url :requestUrl,
type : 'post',
dataType:'json',
data: "stuName="+escape(escape(stuName))+"&currentPageIndex="+currentPageIndex+"&pageSize="+pageSize,
success : function(result){
  var stus = result.students;
  $("#stuBody").html("");
          for(var i=0;i<stus.length;i++){
     $("#stuBody").append("<tr><td>"+stus[i].stuName+"</td><td>"+stus[i].stuSex+"</td><td>"+
     stus[i].stuBir+"</td><td>"+stus[i].stuAdd+"</td><td><a href='#' onclick='editItem("+stus[i].stuId+");'"+
     ">修改</a>&nbsp;&nbsp;<a href='#' onclick='deleteItems("+stus[i].stuId+");' >删除</a></td></tr>");
  }
  $("span[class='totalCount']").html(result.totalCount);
  $("span[class='currentPageIndex']").html(result.currentPage).val(result.currentPage);
  $("span[class='totalPage']").html(result.totalPage).val(result.totalPage);
     },error:function(err){
        alert( '系统内部错误'+err);
         }
});

}


Action的接受及封装
public class StudentAction {
public  StudentService studentService;

private String stuName;

        public String getStuName() {
return stuName;
}

public void setStuName(String stuName) {
this.stuName = stuName;
}


        public StudentService getStudentService() {
return studentService;
}

public void setStudentService(StudentService studentService) {
this.studentService = studentService;
}

        public void query() {

HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();

String tempName = unescape(request.getParameter("stuName"));

               
               try {
                         

students=studentService.queryStuByName(tempName,currentPageIndex,pageSize);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(getStudentListJSON(students));


} catch (Exception e) {
e.printStackTrace();
}

        }

     public String getStudentListJSON(List<Student> students)
{
StringBuffer retVal=new StringBuffer("{'students':[");
int i=0;
for(Student t:students){
if(i!=0)
{
retVal.append(",");
}
retVal.append("{");
retVal.append("\"stuId\":\""+t.getStuId()+"\"");
retVal.append(",\"stuName\":\""+t.getStuName()+"\"");
retVal.append(",\"stuSex\":\""+t.getStuSex()+"\"");
retVal.append(",\"stuBir\":\""+t.getStuBir()+"\"");
retVal.append(",\"stuAdd\":\""+t.getStuAdd()+"\"");
retVal.append("}");
i=i+1;
}
retVal.append("],\"totalPage\":\""+10+ "\"}");
return retVal.toString();
}

      
        @SuppressWarnings("unused")
private String unescape(String src) {
  StringBuffer tmp = new StringBuffer();
  tmp.ensureCapacity(src.length());
  int lastPos = 0, pos = 0;
  char ch;
  while (lastPos < src.length()) {
   pos = src.indexOf("%", lastPos);
   if (pos == lastPos) {
    if (src.charAt(pos + 1) == 'u') {
     ch = (char) Integer.parseInt(src
       .substring(pos + 2, pos + 6), 16);
     tmp.append(ch);
     lastPos = pos + 6;
    } else {
     ch = (char) Integer.parseInt(src
       .substring(pos + 1, pos + 3), 16);
     tmp.append(ch);
     lastPos = pos + 3;
    }
   } else {
    if (pos == -1) {
     tmp.append(src.substring(lastPos));
     lastPos = src.length();
    } else {
     tmp.append(src.substring(lastPos, pos));
     lastPos = pos;
    }
   }
  }

  return tmp.toString();

}

}
分享到:
评论
1 楼 bewithme 2013-03-18  
眼看楼主没人理会,我大发善心,特此回贴,以代表顶过楼主。

相关推荐

    PHP开发框架kohana中处理ajax请求的例子

    现在主流的javascript框架非jQuery莫属.jQuery对ajax请求也作了封装,这里就以jQuery为例来写个.demo是获取后台json串,并且用each处理.代码大部分是从jqapi搞来的,准确也方便. $.ajax({ url: "/test/json",//test...

    jfinal插件集合demojfinal-demo.zip

    3.使用jfinal-web实现根据ajax请求返回json数据,其他返回默认数据,支持继承JFController使用getModels获取对象列表,继承Model封装,避免写大量重复的sql代码,使用ehcache缓存等多个特性 4.使用jfinal-sqlinxml...

    ASP.NET增、删、改、查Demo

    最近闲来没事,写了个小的Demo巩固了下自己的ASP.NET知识。 采用了简单的三层:Entity(表字段的get/set方法)、BLL(表增、删、改、查方法封装)、Pages(页面展示)。 自己封装了SQLClass类,采用ADO.NET操作SQL...

    利用js实现前后台传送Json的示例代码

    实现传值常用的是Jquery以及内部封装的ajax。首先看一下jquery的get()和post()语法。get()方法是从服务器获得数据,其主要参数就是获得后台请求地址,以及负责处理的回调函数: $.get(URL,callback); $...

    Android 常用六大框架

    (3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。 (4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android...

    RXUI_Demo(JQueryUI)

    自己写的一个JQueryUI,给大家分享一下,封装了一些常用Ajax功能,报表、Excel编辑下载、table展示、repeater(与.net的repeater控件使用方式类似数据源是json)、form表单提交加载还原,combobox的示例我忘记写上去...

    ABP(2.02)框架相关Demo代码以及报错处理和中文说明手册

    封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层等等 除ABP框架项目以外,还开发了名叫“Zero”的模块,实现了以下功能: 身份验证与授权管理(通过ASP.NET Identity实现的) 用户&...

    BookStoreSystem:一个算是前后端分离的项目,因为比较小,就直接把前端塞到了webapp目录

    前后通信前端使用ajax发送请求, 端使用jackson以结果类的形式将请求的数据封装为json返回。 缺点 购物车功能来不及实现了,也未设计表存储商品,就考虑或者用cookie来假装存到库里了,或者只是用js只做视觉效果。 ...

    jquery插件使用方法大全

    由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此现在通过jQuery编写Ajax程序将自动获得这一功能。 开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。 ...

    我记录 内容管理系统 CMS源码

    不像其他一些框架只提供一个 blog 的粗糙 demo。 wojilu framework 希望自己是一个真正从实战中来,到实战中去的框架。 4、从整体上考虑各子框架的设计,比如前端 ajax 部分和 mvc 框架的结合;比如IOC依赖注入和mvc...

    ZendFramework中文文档

    7.4.3. 子类化请求对象 7.5. 标准路由器:Zend_Controller_Router_Rewrite 7.5.1. 简介 7.5.2. 使用路由器 7.5.3. 基本的Rewrite路由器操作 7.5.4. 缺省路由 7.5.5. 基本 URL 和子目录 7.5.6. Route Types ...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    4.jquery封装Tab标签选项卡,内含动画版选项卡及滑动门 5.jQuery实现flash动感切换选项卡TAB插件示例 6.jquery制作自动播放的TAB切换特效 7.基于jQuery简单的Tab滑动门菜单代码(jQuery MoveTab) 8.简单...

Global site tag (gtag.js) - Google Analytics