首页 > 解决方案 > 使用 Spring WebFlux 和 Thymeleaf 进行重定向后获取

问题描述

有人可以向我解释如何在 Spring WebFlux 和 Thymeleaf 中实现post-redirect-get模式吗?什么订阅了数据库保存方法?

@GetMapping("/register")
public String showRegisterForm(Model model) {
    model.addAttribute("user", new User());

    return "register";
}

@PostMapping
public String processRegisterForm(@Valid User user, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        return "register";
    } else {
        userRepository.save(user); //what subscribes on this?
        //how to redirect on e.g. "/login"?
    }
}

标签: thymeleafspring-webflux

解决方案


你可以让你的控制器方法返回一个反应类型,如下所示:

@PostMapping
public Mono<String> processRegisterForm(@Valid User user, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        return Mono.just("register");
    } else {
        return userRepository.save(user).thenReturn("redirect:/login");
    }
}

推荐阅读