2012-06-05 33 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

在這種情況下,您應該接受答案或給予一些功勞。謝謝 –

相關問題