点击链接控件后,我有一个链接retailerId将转到下面的控制器:
@Controller
@RequestMapping(value = "/auth/adminsearchowner")
public class AdminSearchOwnerController {
@RequestMapping(value = "/retailerId/{retailerId}",method = RequestMethod.GET)
public ModelAndView viewRetailerInfo(
@PathVariable("retailerId") String retailerId,
@ModelAttribute EditRetailerLifeCycleBean editLicenseBean) {
editLicenseBean.setSelectedIDsString(retailerId);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("editLicenseBean",editLicenseBean);
modelAndView.setViewName("redirect:/auth/adminlicense/viewlicense");
return modelAndView;
}
}
其中/ auth / adminlicense / viewlicense位于另一个控制器中,我们同时拥有此/ auth / adminlicense / viewlicense请求映射的GET和POST方法。我想从早期的控制器调用post方法。
@Controller
@RequestMapping("/auth/adminlicense")
public class AdminViewLicenseController {
@RequestMapping(value = "/viewlicense", method = RequestMethod.GET)
public ModelAndView searchRetailerLicense(
@ModelAttribute("editLicenseBean") EditRetailerLifeCycleBean editLicenseBean,
HttpSession session) {
}
@RequestMapping(value = "/viewlicense", method = RequestMethod.POST)
public ModelAndView getLicenseDetails(
@ModelAttribute EditRetailerLifeCycleBean lifeCycleBean,
HttpSession session) {
}
}
但它将采用GET方法。你能告诉我解决方案吗?
答案 0 :(得分:2)
没有解决方案。重定向不能导致浏览器发送POST。
重新考虑你的设计。
答案 1 :(得分:0)
<击> 尝试:击>
<击>modelAndView.setViewName("forward:/auth/adminlicense/viewlicense");
而不是
modelAndView.setViewName("redirect:/auth/adminlicense/viewlicense");
击> <击> 撞击>
无论如何,您试图通过用户的浏览器(客户端)将一些数据从一个控制器(服务器端)发送到另一个(服务器端)的设计可能不是最佳选择。
希望它有所帮助!