ajax提交后台action后,怎么让后台action中通过struts来跳转页面?

发布于 2021-11-27 08:17:05 字数 1643 浏览 808 评论 4

由于之前用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

柒夜笙歌凉 2021-12-01 20:17:17

可以在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错误");

            }    

    })

断爱 2021-12-01 19:51:46

拜托 重定向不就行了?

因为看清所以看轻 2021-11-29 07:56:09

已经使用了ajax就不能再struts里跳转页面,应该在ajax的success里跳转

爱的故事 2021-11-29 05:18:35

ajax的本质就是异步,既然要想用异步的方式做这功能,就应该考虑用异步的思维去设计你的功能。

比如:发送成功的话,后台action应该返回json对象是比较合适的,页面收到异步结果后,再进行相应的处理(比如返回{isSuccess:true},表示发送成功,那么页面收到{isSuccess:true}后,再处理一下,notify一下)。

要么就用提交表单的方式做,发送成功服务器可以直接返回相应的result页面,不成功就hold住表单,返回提交前的页面给用户。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文