在ajax调用之后将响应重定向到另一个jsp

时间:2014-06-23 08:17:11

标签: java javascript jquery ajax jsp

我有一个来自jsp页面的ajax调用,它向控制器中的ModelandView类发送请求。

在test.jsp中调用Ajax

function currentposition(l1, l2) {
    var url="home/test";
    var data= 'lat1=' + l1 + '&lat2=' + l2;
    $.ajax({
        type:"POST",
        url:url,
        data:data,
        dataType:"json",
        success:function(responseJSON){
            alert(responseJSON);
        }
    });
}

控制器

public ModelandView gettest(@Context HttpServletRequest request) {
    ModelandView responseView = new ModelandView(new JsonView());
    //some code here
    if (somecondition) {
        response.addObject("JSONdata", vehicleID);
    }
    else {
        System.out.println("Not present");
    }
    return responseView;
}

我从控制器得到test.jsp的响应,我得到了预期的结果。但是我想将结果重定向到another.jsp,其结果应该出现在下拉列表中,如下所示。

another.jsp

<select class="test" id="vehicle-id">
    <option>...</option>
</select>

我该怎么做?

3 个答案:

答案 0 :(得分:1)

尝试添加AJAX调用的成功响应:

var surl = '<%=request.getContextPath()%>/registration';
                window.location.replace(surl);

答案 1 :(得分:0)

您可以尝试通过表单提交:

...
success:function(responseJSON){
   var form = $('<form></form>').attr('action','another.jsp');
   $(form).attr('method','POST');
   var ele = $('<input type="text">').attr('name','txtjson');  
   $(ele).val(responseJSON); 
   $(ele).appendTo($(form));
   $(form).appendTo('body');
   $(form).submit();

}
...

然后在你的another.jsp文件中,只接收POST变量txtjson

答案 2 :(得分:0)

编写另一个返回another.jsp

的控制器

test.jsp开始,提供window.location = /home/test?lat1=' + l1 + '&lat2=' + l2;

处理完json数据后,重定向到另一个控制器。