当前位置: 首页 > 知识库问答 >
问题:

重定向后-使用Spring WebFlux和Thymeleaf获取

笪栋
2023-03-14

有人能给我解释一下如何在Spring WebFlux和Thymeleaf中实现后重定向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"?
    }
}

共有2个答案

段干子晋
2023-03-14

为了记录在案,我推荐Brian编写的解决方案,因为它更好地表达了意图。然而,如果你想给你的朋友留下深刻印象。这里有一些没有if语句。

@PostMapping
public Mono<String> processRegisterForm(@Valid User user, BindingResult bindingResult) {

    return Mono
            .just(bindingResult.hasErrors())
            .filter(t -> t)
            .flatMap( t-> Mono.just("register"))
            .switchIfEmpty(userRepository.save(user).thenReturn("redirect:/login"));
}
邹祺
2023-03-14

您可以使控制器方法返回如下反应类型:

@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");
    }
}
 类似资料:
  • 我正在使用thymeleaf和Spring MVC进行Post/Redirect/Get操作,效果很好。除了当我进入页面进行获取和刷新外,ModelAttribute也会重置。这是我正在做的类似事情的一个片段。 我的对象只是一个简单的java bean,具有一个名为

  • 我有一个页面“/order/new”,它包括两个客户及其地址的下拉菜单和一个重定向选择要添加到订单中的产品的按钮,我在一个数组中获得产品,并将该数组传递给“/order/new”。但是当我重定向时,我没有获得选定的客户及其地址。我将按顺序添加的产品保存在全局数组hh中,它从ajax获得数据 我想在添加产品数组后获取客户及其地址 我的ajax代码: “/new/order”得我得ejs:

  • 问题内容: 我正在使用访问管理(AM)服务器创建社交登录页面。当用户单击登录按钮时,我将对AM服务器进行一次http调用。AM服务器生成带有身份验证cookie的HTTP 301重定向响应到社交登录页面。我需要以某种方式遵循此重定向响应,并在Web浏览器中显示新内容。 用户界面:ReactJS 请求: 响应 反应代码: 如何跟踪重定向响应并在Web浏览器中显示新内容? 问题答案: Request.

  • 我想在登录到我的索引页面(index.jsp)后进行重定向,实际上我的登录可以正常工作,但ajax支持缺少重定向。 她是我的登录名。jsp 这是我的登录 我的struts配置文件: 对于DAO部分是: 公共字符串验证(字符串用户名,字符串userpass)抛出SQLException,Exception{ 谢谢你的帮助。

  • 问题内容: 在页面重定向(最好使用curl或wget)之后,我需要获取最终的URL。 例如, http://google.com 可以重定向到 http://www.google.com 。 内容很容易获得(例如),但是我只对最终URL(在前一种情况下为http://www.google.com)感兴趣。 仅使用Linux内置工具有什么方法可以做到这一点?(仅命令行) 问题答案: 的选项和sub变

  • 问题内容: 有时我的URL会重定向到新页面,因此我想获取新页面的URL。 这是我的代码: 输出为: stackoverflow.com/questions/88326/does-elmah-handle-caught-exceptions-as- well 它对于网站效果很好,但是对于sears.com网站却无法正常工作。 如果我们输入URL打击: 输出仍然是: http://www.sears.