功能要求:
第一步,在客户端的浏览器里,点击一个按钮,
以文件流的形式从服务器端下载一个文件到客户端。
第二步,修改后台数据库,把下载时间写在数据库里。
第三步,把更新数据库的时间再显示到本页面。问题:下载文件后,action不能再次提交到本页面。
只能在struts的action里面return null;
所以不知道如何把后台的时间再次显示到客户端。
请高手解答。谢谢了。

解决方案 »

  1.   

    ActionForward af = new ActionForward();
    af.setPath("xx.do?xxxxx");//设置转向的路径
    af.setRedirect(true);
    return af;
    你可以尝试下,是否能转向
      

  2.   

    return null??为什么?返回的字符串指向原页面不可以吗
      

  3.   

    return null,还不如redirect 到那个下载页面
      

  4.   

    把后台的时间再次显示到客户端。 
    要么再查一遍 
    或者 在客户端提交过去的时间放到request中  前台再接收打个比方  你做个登陆页面  就是从一个页面登陆 不用添加到数据库 然后把用户名和密码显示到另一个页面会做了吗
      

  5.   

    这个好弄
    在public ActionForward(ActionMapping mapping,ActionForm form,HttpServletRequest,HttpServletReponse response){
        if(这里是文件下载并且数据更新成功条件){
            response.sendRedirect(".jsp?id="+id);//
            或者用数据转发方式,也可以,
            //或者,把数据封装成对象放入request中,再return mapping.forward(".jsp");
        }
        else{
             return mapping.findward("error");
        }
    }
      

  6.   

    直接返回是不行的,你的content-type已经不是text/html了,只有在页面加个ajax去获取一个静态变量的值.1.建立一个专署下载action类A(这个类不是你点下载请求的类,是用于ajax请求的),里面可以放个静态对象存放下载完成后的信息.
    2.当你在页面点击下载的时候,这个时候是请求你真正的下载类,这个点击事件完成的同时,你发起ajax请求去访问A类(A类跟普通action一样).可以设置每2秒去访问一次.返回下载信息.
    3.你的下载action类把流输出完成后,改变A类中的存放下载信息对象的内容.比如:flag=1表示下载完成,当你ajax获取到flag=1时,则把其他信息也输出来就行了.