我有startController
并开始查看。在此视图中,我输入数量和金额并进行验证。如果验证成功,我希望将此参数(数量和数量)传递给另一个控制器,然后在此控制器中对其进行一些操作。我看到两种方式:
在第一个控制器中执行此操作,在另一个方法中使用第二个视图。但是我的控制器非常大,所有的逻辑都是这样。
创建第二个控制器和第二个视图并将参数传递给此控制器。
我做到了:
@Controller
@RequestMapping("/")
public class StartController {
@Autowired
private ValidateService validateService;
@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome() {
ModelAndView modelAndView = new ModelAndView("start");
return modelAndView;
}
@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;
}
如果result != OK
我重定向到新控制器
@Controller
@RequestMapping("/check")
public class CheckController {
@RequestMapping(value = "process", method = RequestMethod.GET)
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;
}
}
但是我需要使用RequestMethod.POST
传递参数,但它不起作用。怎么做?
答案 0 :(得分:0)
您可以使用转发到新控制器吗? “前进:?/ TEST2参数1 = FOO&安培; param2的=栏”; 请参阅以下链接了解更多详情。 Spring forward with added parameters?