ajax提交后台action后,怎么让后台action中通过struts来跳转页面?
由于之前用jquery的submit事件提交表单时,ckeditor中的内容提交不了
$("#sendmail").submit();
所以我换了ajax提交,a但是现在ajax提交有一个问题.我需要的是表单提交到action中,
action中进过struts,跳转到对应的成功界面,但是由于ajax,我action中 的功能实现了,就
是不能进行跳转,界面一直显示发送中,想请问一下各位这是怎么回事.
我期望发生的是ajax只把data传给action后success中不用处理任何东西,由atruts跳转到新jsp
jsp代码
$.ajax({ type: "POST", url: "<%=basePath%>user/sendMail!checkName.action", data: parm, dataType:"text", success: function (data, textStatus) { hiddenProgress();//隐藏进度条 if(data=='true'){ showProgress("正在发送邮件...");//显示保存进度 //$("#sendmail").submit(); $.ajax({ type: "POST", url: "<%=basePath%>user/sendMail!sendEmail.action", data: parm, dataType:"text", success:function(data){ // alert("发送成功"); // window.location.href="<%=basePath%>user/user_sendMail_success.jsp"; }, }); } ........................ }
action中的部分代码
mailInfoFB.setSended(true); mailInfoFB.setFrom("邮件发送成功!"); return "sendMailSuccess";
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以在ajax做判断,当返回的data.msg="null(成功后不要给msg赋值)",当成功后 它返回的是bull, 就直接if(data.msg==null){在js里写跳转页面功能代码}
action里面的{
private String msg;
....
}
$.ajax({
url:"dologin!login",
method:"post",
data:params,
dataType:"json",
success:function(data){
alert("数据发送");
if(data.msg!=null){
alert(data.msg);
$("#msg").html(data.msg);
$("#msg").css("color","red");
}else if(data.msg==null){
alert("登录成功");
window.location.href ='index.jsp';
}
//alert(JSON.stringify(data));
},
error:function(){
alert("ajax错误");
}
})
拜托 重定向不就行了?
已经使用了ajax就不能再struts里跳转页面,应该在ajax的success里跳转
ajax的本质就是异步,既然要想用异步的方式做这功能,就应该考虑用异步的思维去设计你的功能。
比如:发送成功的话,后台action应该返回json对象是比较合适的,页面收到异步结果后,再进行相应的处理(比如返回{isSuccess:true},表示发送成功,那么页面收到{isSuccess:true}后,再处理一下,notify一下)。
要么就用提交表单的方式做,发送成功服务器可以直接返回相应的result页面,不成功就hold住表单,返回提交前的页面给用户。