2016-04-08 12 views
0

IDenetleyiciden başka bir denetleyiciye POST yöntemine nasıl yönlendirilir?

@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; 
    } 

I yöntemi POST başka bir kontrol yönlendirme gereken bazı yöntemini sahiptir. ama bir hata var

HTTP Status 405 - Request method 'GET' not supported 

O ist ikinci kontrolör Ben Bir mesaj yöntemiyle yönlendirme yapamaz

+1

tl; yapamazsınız, buna ihtiyacınız varsa, http işinin nasıl çalıştığını gerçekten anlamıyorsunuz, kullanım durumunuzu açıklayabilirsiniz, o zaman geçerli bir çözüm bulmanız için size yardımcı olabiliriz – Jaiwo99

+0

Yeni denetleyiciyi nasıl arayabilirim benim yöntemimden – user5620472

+0

sorunun nedeni nedir? – Jaiwo99

cevap

1

, sen Mesaj/Yönlendirme bakmak gerekir yönlendirmek çalıştı

@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; 
    } 
} 

/Tasarım desenini alın. İlk denetleyicinizdeki doğrulama başarılı olursa, flaş verisi ile ikinci denetleyicinize yeniden yönlendirmek için RedirectAttributes'u kullanabilirsiniz, bu nedenle /check/process yöntemini GET olarak değiştirmeniz gerekir.