2016-04-08 18 views
0

私はメソッドをPOSTするために別のコントローラにリダイレクトする必要があるいくつかの方法コントローラから別のコントローラへのリダイレクトをPOSTメソッドにどのようにリダイレクトしますか?

@RequestMapping(value = "process", method = RequestMethod.POST) 
    public ModelAndView process(HttpServletRequest request) { 
     ModelAndView modelAndView; 
     String phoneNumber = request.getParameter("phone_number"); 
     int amount = Integer.parseInt(request.getParameter("amount")); 

     String result = validateService.validate(phoneNumber, amount); 

     if (!result.equals("OK")) { 
      modelAndView = new ModelAndView("start"); 
      modelAndView.addObject("result",result); 
     }else { 
      modelAndView = new ModelAndView("redirect:/check/process"); 
      modelAndView.addObject("phone_number",phoneNumber); 
      modelAndView.addObject("amount",amount); 
     } 
     return modelAndView; 
    } 

を持っています。しかし、私はエラーを持っている

HTTP Status 405 - Request method 'GET' not supported 

それイスト二コントローラ私はPOSTメソッドにリダイレクトすることはできません

+1

tl;これが必要な場合は、httpの仕組みを理解していないだけで、ユースケースについて説明してから有効な解決方法を見つけることができます。 – Jaiwo99

+0

新しいコントローラ私の方法から? – user5620472

+0

質問はなぜですか? – Jaiwo99

答えて

1

は、あなたがポスト/リダイレクトを見てみなければならないリダイレクトしようとした

@Controller 
@RequestMapping("/check") 
public class CheckController { 

    @RequestMapping(value = "process", method = RequestMethod.POST) 
    public ModelAndView process(HttpServletRequest request) { 
     ModelAndView modelAndView = new ModelAndView("check"); 
     String phoneNumber = request.getParameter("phone_number"); 
     int amount = Integer.parseInt(request.getParameter("amount")); 
     return modelAndView; 
    } 
} 

/デザインパターンを入手してください。最初のコントローラの検証が成功した場合は、RedirectAttributesを使用してフラッシュデータを2番目のコントローラにリダイレクトすることができます。したがって、/check/processのメソッドをGETに変更する必要があります。

関連する問題