【问题标题】:RedirectAttributes in Spring MVC 3.2.8Spring MVC 3.2.8 中的重定向属性
【发布时间】:2017-01-11 20:45:21
【问题描述】:

我有一个基于 Spring Web 模型-视图-控制器 (MVC) 框架的项目。 Spring Web 模型-视图-控制器 (MVC) 框架的版本是 3.2.8。

我有这个方法

@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)

【问题讨论】:

    标签: spring jsp spring-mvc


    【解决方案1】:

    您的代码的问题在于“重定向”和“转发”之间的区别。

    如果使用重定向语句返回,响应将首先返回到浏览器,然后它会请求新的 url。这种方法的问题在于,重定向的新请求将具有全新的上下文,并且无法访问您之前响应中设置的模型。

    然而,转发响应由服务器端自己处理,将请求传输到新的 URL。它速度更快,并且可以维护上下文。

    您可以找到更多详情here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多