我有一个控制器
@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得到响应。