我有一个控制器

@RestController
public class MessageRestController {

    @PostMapping(value = "/sendMessage")
    public ResponseEntity<?> sendMessage(
            @RequestParam String username,
            UriComponentsBuilder builder
    ) {
        UriComponents components = builder.path("/profile/{username}").buildAndExpand(username);
        System.out.println("LinK: " + components);

        return ResponseEntity.created(components.toUri()).build();
    }
}


这是POST方法,并且在调用后应在位置的网站标题中添加一个值,例如

http://localhost:8080/profile/hereIsSomeUsername


然后,它应该重定向到给定的地址。仍然没有反应。位置设置为https://zapodaj.net/102d5f0d98e58.png.html,但不重定向。

最佳答案

您可以将HttpServletResponse对象添加到Controller方法参数中,其余的将由Spring进行,以确保其正确连接。

@PostMapping(value = "/sendMessage")
public ResponseEntity<?> sendMessage(
        @RequestParam String username,
        UriComponentsBuilder builder,
        HttpServletResponse response
){
//...
}


然后,您可以将重定向发送到所需的URL:

response.sendRedirect(components.toUri());


并记住要处理IOException。

完成之后,您的请求将被重定向到选定的URL,并且您将从新URL得到响应。

10-06 05:01
查看更多