日期:2014-05-20  浏览次数:20795 次

JSP页面触发一个Action后如何响应后台action方法的return
小弟新手,请各位大哥大姐指教

如题,在页面上执行post或get类型的action时,后台会来执行action所对应的方法,执行完成时return,前台的页面如何知道后台的方法return了? 也就是说在页面中有什么方法来接收后台的return

就比如多文件上传的uploadify插件中有一个onComplete()方法,当文件上传完后台执行return时就会触发页面中这个onComplete(),我想问的就是类似这样的功能是怎么实现的

------解决方案--------------------
如果是普通的post,必然是伴随着页面重新输出而结束的,这种情况下不需要特别搞什么JS去接收后台的事件,因为已经重新跳转到新的页面了。

你说的多文件上传,一般用的是AJAX技术,那么AJAX在异步执行完毕后,就会自动调用你注册好的回调函数(也就是类似于你说的onComplete)。

你首先需要先对整个Web应用的请求处理机制有完整的概念,然后再分清楚刚才我说的这两种模式的差异。不然会比较乱。
------解决方案--------------------
你这个可能是:FileUplaod.jsp 里面有一个隐藏<iframe></iframe>里面提交的。
通过JS将FileUplaod.jsp里面的多个附件的表单和路径复制到隐藏<iframe></iframe>里面。然后提交iframe。

return 的时候,是刷新隐藏的iframe页面,而iframe页面通过JS,再作用于主页面(FileUplaod.jsp)
看起来就好像,没有刷新一样。

实际上多附件上传,我们需要的是一次选择多个附件的功能,可惜这种功能HTML是不能实现的。只有FLASH里面有一次选择多个附件的Flash的文件选择对话框。 我们只需要这个就行了。 你得到了多个附件的本地路径,剩下的就交给HTML表单来处理了,因为JS什么都能生成。