代码之家  ›  专栏  ›  技术社区  ›  Kyan

在重定向之后,Spring mvc不再显示错误

  •  0
  • Kyan  · 技术社区  · 6 年前

    我一直在用Spring创建一个表单。我曾经有一个页面工作正常,所有的验证工作正常,重定向带我回到有模型的页面,错误,所有的字段都填好了。

    但是,现在,因为我已经创建了另一个更基于JS的页面,它将重定向到我的初始应用程序表单。 (如果有任何不同,它使用sessionstorage)

    我的控制器#图1

    @RequestMapping(value = "/newApplication", method = RequestMethod.GET)
    public String retryApplication(Model theModel) {
        if (!theModel.containsAttribute("applicant")) {
            theModel.addAttribute("applicant", new Applicant());
        } else {
            Applicant theApplicant = new Applicant();
            theModel.addAttribute("applicant", theApplicant);
        }
        return "application-form";
    }
    

    @RequestMapping(method = RequestMethod.POST)
    public String doSendEmail(HttpServletRequest request,@Valid @ModelAttribute("applicant") Applicant Applicant,
            BindingResult result, RedirectAttributes redirectAttributes)throws Exception {
    
        //checks form for errors
        if(result.hasErrors()) {
            System.out.println("found errors");
            redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.applicant", result);
            System.out.println("adding flashattribute to binding result");
            redirectAttributes.addFlashAttribute("applicant", Applicant);
            System.out.println("adding flashattribute to applicant");
            return "redirect:/newApplication";
    
         }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Kyan    6 年前

    完全正确。问题出现在图1中,在意识到我正在创建一个空对象之后,如果有任何错误,我只需要删除下面的代码。

    神秘的是它以前是如何工作的,哈哈。

    } else {
        Applicant theApplicant = new Applicant();
        theModel.addAttribute("applicant", theApplicant);
    }