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

countdowm6 发布于 2015/08/16 12:52
阅读 6K+
收藏 0

由于之前用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";

以下是问题补充:

@countdowm6:感谢各位的回答,但我发现不适合我,我现在不用ajax来提交了,还是用之前的jquery 的submit事件来提交表单,去解决问题,恩,找到了之前不能提交的资料,有兴趣的可以看一下-->http://blog.csdn.net/he20101020/article/details/7914145 (2015/08/16 14:03)
加载中
0
莫铭
莫铭

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

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

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




0
hmy_362322
hmy_362322
已经使用了ajax就不能再struts里跳转页面,应该在ajax的success里跳转
0
番茄酱汁
番茄酱汁
拜托 重定向不就行了?
0
6
676866132
可以在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错误");
            }    
    })
返回顶部
顶部