用struts2写文件上传,但上传后页面会发生跳转,用ajax呢又不能操作file类型,所以就用了个隐藏iframe来处理,现在文件已经上传了,但是action处理后的消息(成功或失败)怎么返回给当前页面呢?
这是html页面中要提交的表单
<form action="deploy" id="form1" name="form1" 
encType="multipart/form-data" method="post" target="hidden_frame">
<input type="file" id="file" name="file">
<INPUT type="submit" class="button" value="上传文件">
<span id="msg"></span>
<iframe name='hidden_frame' id="hidden_frame" style="display: none;"></iframe>
</form>

解决方案 »

  1.   

    你在相对应的Action中进行返回到成功页面不就可以了吗?
    最近我也在用Struts2做一个批量上传的文件 找了很多资料终于给弄出来了
    哎~! 郁闷啊 !
    LZ 做的怎么看着像是只能够上传一个图片呢?
      

  2.   

    用struts.xml的execute()方法的返回值取去判断???
      

  3.   

    哥的博客上有上传的例子:用的是struts2的fileUpload拦截器实现的,有空去我空间转转
    http://blog.csdn.net/nvrenbumeigaga
      

  4.   

     exceute()方法返一个SUCCESS 之后在struts.xml中
    <result name="success">/LoginSuc.jsp</result>是这个么?
      

  5.   

    表单中是file类型,那就什么文件都可以传的,要上传什么类型的那就要在拦截器中配置,我是在弹出窗口中有一个上传的表单,我的需求是我点上传后还是停留在当前这个打开的弹出窗口,如果在xml文件中配置的势必会发生跳转,或者就会直接把那个弹出窗口以一个新的页面打开,用ajax呢不能传递file类型,所以就用iframe来模拟ajax,现在已经实现了,但是在上传成功以后如何把成功的消息返回给当前的这个弹出窗口中
      

  6.   

    你可以用response将你想要返回的message传入前台。
    response.setContentType("text/html");
    response.getWriter().write("message");
    然后在ajax中将信息显示出来即可。  var objReq = new ActiveXObject("Microsoft.XMLHTTP");
      objReq.open("post",url,false);
      objReq.setRequestHeader("Content-Type","text/html; charset=UTF-8");
      objReq.send();
      if(objReq.status == 200)
      {
          alert(objReq.responseText);  
      }
    其中objReq.responseText就是你response写入前台的信息message
      

  7.   

    http://www.mkyong.com/struts2/struts-2-actionerror-actionmessage-example/