将数据传入重定向网页

118 阅读1分钟

在做springboot的web开发时,常常用到thymeleaf模板,有时要回显数据,比如说post请求的时候传入数据,进行完数据校验后,将一些想要返回的值放入model中传入下一个网页,这时候不要直接retun"",因为这样在你刷新网页时就会出现是否重复提交表单,这是一种很不好的现象,所以要用到重定向的操作:
在这里插入图片描述
这时候就不能简单的用model.addAttribute()来回显数据了,而要用如下方式:
RedirectAttributes redirectAttributes,将该类注入,使用addFlashAttribute方法即可。
如下例:

  @PostMapping("/index")
    public String indexPostPage(@Valid SparkParameter sparkParameter, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
        if (bindingResult.hasErrors()) {
            ArrayList<String> strings = new ArrayList<>();
            bindingResult.getFieldErrors().forEach((item) -> {
                String message = item.getDefaultMessage();
                strings.add(message);
            });
            redirectAttributes.addFlashAttribute("msg", "发送任务失败" + strings.toString());
            return "redirect:http://localhost:" + port + "/index";
        }
        log.info("开始往发送任务+topic--->" + productTopic);
        this.kafkaTemplate.send(productTopic, JSON.toJSONString(sparkParameter));
        redirectAttributes.addFlashAttribute("msg", "发送任务成功");
        return "redirect:http://localhost:" + port + "/index";
    }