2012-06-05 45 views
1

嘿,我有以下问题。 这是JSPX文件的内容:弹簧控制器重定向到另一页

function postSMTH() { 
    $.ajax({ 
     type: "POST", 
     url: document.getElementById("urltxt").value, 
     data: parameters, 

     }); 
} 

<input type="hidden" value="${pageContext.request.contextPath}/foo/foo2/foodat" name="urltxt" id="urltxt"/> 

<div class="foodat"><a href="javascript:postSMTH();"><spring:message code="foo_foo2_foodat_text" text="FOODAT"/></a></div> 

所以,如果我按下提交键,postSMTH函数被调用,Ajax对象是粘贴到控制器,它看起来像这样:

@Controller 
@RequestMapping(value="/foo") 
public class FooController { 

.............. 

@RequestMapping(value="/foo2", method=RequestMethod.POST) 
public String homePOST(HttpServletRequest request) { 
    ........ 
}  
@RequestMapping(value="/foo2", method=RequestMethod.GET) 
public String homeGET(HttpServletRequest request) { 
    ........ 
} 


@RequestMapping(value="/foo2/foodat", method=RequestMethod.POST) 
public String doTHAT(HttpServletRequest request) { 
    // check authorization 

     Map fooMap = request.getParameterMap(); 

     // do something in the Database, depending on the paramMap 

    return "redirect:/foo/foo1"; 
} 
} 

关于数据库一切工作正常,但问题是,在最后的重定向不工作。它只停留在页面foo2。

我是新来的春天,也许是某个地方有点小错误。我不能自己做出来。

如果有人会有一些提示会很好。谢谢

+0

可能是一些异常发生和重定向没有被调用。您是否添加了log/System.out并查看最后一条语句是否被调用? – kosa

回答

4

您正在使用jquery ajax调用进行异步表单提交。所以,请求完成后,您需要使用javascript更改文档位置。例如,这样的事情:

$.ajax({ 
    type: "POST", 
    url: document.getElementById("urltxt").value, 
    data: parameters, 
    complete: function() { 
     window.location.replace(...); 
     } 
    }); 
+0

thx!这使它工作:)荣誉! – user1386375

+0

在这种情况下,您应该接受答案或给予一些功劳。谢谢 –