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