Spring MVC 3.2.8中的重定向属性
我有一个基于SpringWebModelViewController(MVC)框架的项目。SpringWeb模型视图控制器(MVC)框架的版本是3.2.8 我有这个方法Spring MVC 3.2.8中的重定向属性,spring,jsp,spring-mvc,Spring,Jsp,Spring Mvc,我有一个基于SpringWebModelViewController(MVC)框架的项目。SpringWeb模型视图控制器(MVC)框架的版本是3.2.8 我有这个方法 @RequestMapping(value = { "/newdesign/manage/device/award", "/newdesign/manage/device/award/"}, method = {RequestMethod.POS
@RequestMapping(value = { "/newdesign/manage/device/award",
"/newdesign/manage/device/award/"}, method = {RequestMethod.POST})
public String awardDeviceProduct(
@ModelAttribute("deviceForm") DeviceForm deviceForm,
HttpServletRequest request,
Model model,
final RedirectAttributes redirectAttributes) throws Exception {
checkUser (request, UserRole.MARKETING);
Device device = manageLicenseService.getDeviceById(deviceForm.getDevice().getId());
if (deviceForm.getDevice().getIos()==null) {
model.addAttribute ("errorMessage", "Licence Number cannot be null !");
redirectAttributes.addFlashAttribute("errorMessage", "Licence Number cannot be null !");
} else if (deviceForm.getSelectedItems()!=null &&
!deviceForm.getSelectedItems().isEmpty()) {
// check LICENCE DUPLICATED
manageLicenseService.applyStatusChange (device, deviceForm.getSelectedItems(), Status.AWARDED );
} else {
model.addAttribute ("errorMessage", "no Items selected !");
model.addAttribute ("productGroup", getNotExpiredProductGroups (request));
}
return "redirect:/newdesign/manage/device/" + deviceForm.getDevice().getId();
}
但是在JSP中我找不到属性“errorMessage”!!!!当(deviceForm.getDevice().getIos()==null)代码的问题在于“重定向”和“转发”之间的差异 如果返回重定向语句,响应将首先返回到浏览器,然后请求新的url。这种方法的问题是,重定向的新请求将具有一个全新的上下文,并且将无法访问在您以前的响应中设置的模型 然而,转发响应由服务器端自己处理,将请求传输到新的URL。它更快,并且可以维护上下文 你可以找到更多的细节