springmvc controller跳转页面问题

kastup 2016-07-03 03:03:49
需要把数据传回前台,又需要几秒后跳转页面.

如果用@responsebody传递数据,那么最后跳转页面该怎么做?
我试了下response.sendRedirect不起作用.
在js里面设置延迟跳转,还没触发就直接到了action里面.

后来又尝试用PrintWriter,但是这个传数据必须要flush(),然后redirect就无效果了,
如果这种情况用return 跳页面,怎么去掉前后缀跳到自己想要的页面?

如果上面的情况解决不了,那么有什么好办法能做到上面的需求呢? 参数很简单 就2个字符串,传到前台ajax接收.
求助!!
...全文
659 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccccxxxxsxs 2016-07-11
  • 打赏
  • 举报
回复
return "/index";
kastup 2016-07-03
  • 打赏
  • 举报
回复
引用 2 楼 hzw2312 的回复:
全部放在前端的js代码中来做,先ajax请求得到你的数据,请求成功后再setTimeout停几秒,在window.location.href跳转到你想要跳转的页面


这个已经试过了 后台不等前端延迟,直接转到*.action页面显示返回的数据.
如何让后台不跳转页面也是个问题.

kastup 2016-07-03
  • 打赏
  • 举报
回复
引用 1 楼 twqllq98849577 的回复:
页面加载完再跳转11
这个该怎么实现 新手不是很懂
BUG胡汉三 2016-07-03
  • 打赏
  • 举报
回复
全部放在前端的js代码中来做,先ajax请求得到你的数据,请求成功后再setTimeout停几秒,在window.location.href跳转到你想要跳转的页面
missMeyo 2016-07-03
  • 打赏
  • 举报
回复
springmvc负责和ajax调用结合的时候,后台负责返回数据就好了,不用直接调用printwrite方法,就你说的方法二,至于你说的页面跳转,主要是由前台负责,很多种方法。window.location.href是一种。ajax请求一般不需要刷新表单,讲究的是局部刷新。
twqllq98849577 2016-07-03
  • 打赏
  • 举报
回复
这个还是使用ajax实现比较好。 function test(){ $.ajax({ url:encodeURI(encodeURI('http://localhost:8080/SpringMVC/user/test')), type:'get', cache:false, success:function(data) { test1() ; window.setTimeout(test2,3000); } }); } //调用其他 function test1(){ alert('提交数据响应结果后,3秒后跳转到百度!'); } //跳转到其他页面,比如百度 function test2(){ window.location.href='https://www.baidu.com/'; }
twqllq98849577 2016-07-03
  • 打赏
  • 举报
回复
页面加载完再跳转11
kastup 2016-07-03
  • 打赏
  • 举报
回复
引用 5 楼 twqllq98849577 的回复:
你的需求不是很明白,我说说我的想法,使用return做,比如return mv(1.jsp),mv上绑定一些数据到1.jsp,1.jsp将数据解析完,页面加载完后跳转
这个看的不太明白,能有实际的代码看下吗
kastup 2016-07-03
  • 打赏
  • 举报
回复
或者还有什么可行的方法能实现这个需求呢?
kastup 2016-07-03
  • 打赏
  • 举报
回复
引用 5 楼 twqllq98849577 的回复:
你的需求不是很明白,我说说我的想法,使用return做,比如return mv(1.jsp),mv上绑定一些数据到1.jsp,1.jsp将数据解析完,页面加载完后跳转


需求: 前台提交表单 controller接收数据 返回true false 之类的字符串或者json, 前台接收到数据,执行相应的方法,然后页面延迟几秒跳转到指定页面.
现在是用ajax来做的前台接收数据,springmvc做的后台controller.
出现的问题: controller传给前台数据 我用了2种方式:1 printwrite print()方法 2@responsebody注解传递字符串方法.
1中:print完毕必须flush 才能传递成功,但是flush之后 return redirect就会报错,导致跳转失败.如果在前台ajax里面做延迟跳转,不会等到跳转成功就会先前往action页面,导致跳转失败.如果直接在controller中直接return页面,会自动加入前后缀导致页面地址不对.

2中:在controller中做sendredirect跳转无效果,前台ajax做页面跳转和上面一样的结果,都是直接跳到action,不会延迟跳转指定页面.

疑问:
1,print完毕必须要flush吗? 是否和ajax中设置async=false有关.(因为不设置这个参数,我的ajax就无法拿到回传的数据,不知道为什么,所以我现在是设置为false)
2,添加了@responsebody的controller如何做页面的跳转?
3,正常return的页面如何取消前后缀?

解决了疑问我的问题也就OK了,新手,求助!!

这是执行完毕直接跳action页面的样子




twqllq98849577 2016-07-03
  • 打赏
  • 举报
回复
你的需求不是很明白,我说说我的想法,使用return做,比如return mv(1.jsp),mv上绑定一些数据到1.jsp,1.jsp将数据解析完,页面加载完后跳转

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧