2012-02-22 2 views
1

"리디렉션"을 위해 스프링 웹 MVC를 사용하는 것이 매우 혼란 스럽습니다.봄 3.1 MVC로 새 URL로 리디렉션 하시겠습니까?

URL로 리디렉션하고 싶지만 brwser의 주소 표시 줄은 업데이트되지 않습니다.

먼저 컨트롤러에 양식을 게시하고 컨트롤러에 "리디렉션 :"접두사를 사용하여 새 컨트롤러에 연결했지만 주소 표시 줄에서 이전 URL을 계속 참조합니다. 리디렉션 컨트롤러의

@RequestMapping(method=RequestMethod.POST) 
    public ModelAndView processSubmit(LoginFormBean formBean, BindingResult result, 
    Model model) { 
     System.out.println(formBean.getUsername()); 
    System.out.println(formBean.getPassword()); 
    return new ModelAndView("redirect:/index"); 
} 

: 양식을 게시

@Controller 
@RequestMapping("/index") 
public class IndexController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String show() { 
     return "index"; 
    } 
} 

하기 전에, 양식, URL은 http "입니다 여기

은 TEH 컨트롤러에 대한 내 코드는 포스트 요청을 수신하는 것입니다 : // localhost : 7001/mobi " 게시 및 리디렉션 후 URL은"http : // localhost : 7001/mobi/index "가 아니지만 여전히"http : // localhost : 7001/mobi "

어떤 vi가 있습니까? 내 코드의 오류를 수정해야합니까? 지역 사회가 올바르게 구현할 수 있습니까?

+1

두 개의 링크가 본질적으로 동일하지 않습니까? 테스트로서/sthElse로 리디렉션 해보십시오. 그게 효과가있다. – Stealth

답변

0

코드를 기반으로 추측 할 수있는 유일한 가시적 인 대답은 모델에 대한 의문점이 있으며 이는 인덱스로 리디렉션된다는 것입니다. 스프링과 함께 modelandview 문법을 버리고 직접 원하는 페이지를 반환 할 수 있습니다. 난 그냥 직접보기 페이지를 반환하는 문자열을 반환도 가질 수

@RequestMapping(value = REQUEST_MAP, method = RequestMethod.POST) 
public String processForm(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("myForm") myForm form, BindingResult result) 
     throws Exception { 
    //super cool form handling logic here! 
    return "redirect:/anotherControllerMappedURI"; 
} 

: 여기 또 다른 컨트롤러에 게시 된 양식을 받아 리디렉션 내 자신의 코드에서 예입니다. 마찬가지로 "index"를 반환하여 사용자를 index.jsp 페이지로 보냅니다. 그런 다음 필요에 따라 메타 태그를 사용하여 HTML 리디렉션을 수행 할 수 있습니다.

관련 문제