2012-06-05 5 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 함수가 호출 및 아약스 객체는 다음과 같이 컨트롤러에 붙여 넣기입니다 :

@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

이 경우 응답을 수락하거나 신용을 제공해야합니다. 감사 –

관련 문제