在AJAX验证成功后,Struts2需要重定向到另一个页面

时间:2012-11-14 17:23:17

标签: jquery struts2

我是not using struts2-jquery-plugin。仅使用最新的struts2-json-plugin with JQuery

成功验证后,想要redirect/actionredirect到另一个页面。如果我这样做<result type="redirect">/quiz-success.jsp</result><result>/quiz-success.jsp</result>无效。

问题:你们是怎么做到的?

1 - Is it possible to do redirection etc in struts.xml during AJAX request?
2 - I have to redirect/page refresh in $.ajax({ success: function (data) {} }); like below?

$.ajax({
                    url: url,
                    type: 'POST',
                    data: viewData,
                    //dataType: "json",
                    cache: false,
                    complete: postValidation,
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        console.log("error :"+XMLHttpRequest.responseText);
                    },
                    success: function (data) {
                        Window.location = "/cms/home.action"+sessiontoken;
                    }
                });

struts.xml中

<package name="validation" namespace="/validation" extends="json-default">
        <action name="quizAjax" class="com.myapp.action.QuizAction" method="sayHi">
            <interceptor-ref name="jsonValidationWorkflowStack"/>
            <result name="input">/quiz-ajax.jsp</result>
            <result type="redirect">/quiz-success.jsp</result>
        </action>
    </package>

2 个答案:

答案 0 :(得分:2)

您无法使用<result type="redirect">/quiz-success.jsp</result>,因为您使用javascript调用服务器。这是从服务器获取答案的脚本,而不是页面,因此您必须在脚本中处理它。

答案 1 :(得分:0)

更改此行,看看这是否适合您:

更改此

Window.location = "/cms/home.action"+sessiontoken;

到这个

window.location.replace(window.location.href+"/cms/home.action"+sessiontoken);