public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String loadType = (String) request.getParameter("loadType");
logger.debug("execute() - String loadType=" + loadType); String result = null;


if (loadType.equalsIgnoreCase("subject")) {
result = loadSubject(request);
} else if (loadType.equalsIgnoreCase("publish")) {
result = loadPublish(request);;
} else if(loadType.equalsIgnoreCase("book")) {
result = loadBook(request);
} else if(loadType.equalsIgnoreCase("work")) {
result = loadWork(request);
} else if(loadType.equalsIgnoreCase("user")) {
result = loadUser(request);
} else if(loadType.equalsIgnoreCase("borrowInfo")) {
result = loadBorrowInfo(request);
} else if(loadType.equalsIgnoreCase("message")) {
result = loadMessage(request);
} else if(loadType.equalsIgnoreCase("config")) {
result = loadConfiguration(request);
}

logger.info("execute() - String result=" + result);
try {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
当我连续请求3次ACTION,3次请求传入的loadType都不一样。
有时候3次都得到了正确的result但是只有最后一次的请求的result被成功返回。其他的都是空,
????已经耗了我整整一天了。
有时后还会出现loadType为空,但是最后一次的请求总会成功。

解决方案 »

  1.   

    就这段代码看不出什么,楼主还是设个断点,debug下吧
      

  2.   

    把你的ajax请求的url附带一个随机数,有可能是IE缓存后ajax发现都是同一url不去请求,所以你看到的是同一结果
      

  3.   

    其实我前台用的是extjs.
    我再JS中连3次这样用。
    publishStore.load({params:{loadType:"publish"}});
    subjectStore.load({params:{loadType:"subject"}});
    workStore.load({params:{loadType:"work"}});
    摆再最后面的就能成功
      

  4.   

    我的ACTION是在SPRING中配置的。
      

  5.   

    该不会是js端只var了一个XmlHttpRequest对象吧?
    js执行的时候前一个请求还没响应,对象就被重新赋值了.
    于是只有最后一次的请求能真正处理╮( ̄▽ ̄")╭ 
      

  6.   

    publishStore那三个对象怎么来的能发出来看看么.
      

  7.   

    你的请求比较频繁,用队列实现比较好,可以网上搜索:ajax 队列
      

  8.   

    页面的 value 是规定的 才行 要是从数据库 取出来的话  那是不固定的 。
    重复 请求的话  会发生 内存 数据 重复读取 这个好像是 struts 在封装 servlet(有读取内存 同一个找)没有做好把
      

  9.   

    lz加个token吧,别让他重复提交....
      

  10.   

    你这个问题是:Ajax请求被缓存了,你Ajax请求的URL后面加上一个时间戳,这样它的每次请求就不是一样的了。
    &fresh=' + Math.random(),把这个加在你的Ajax请求的url上。