gpt4 book ai didi

java - 使用 spring 处理请求时如何不返回

转载 作者:行者123 更新时间:2023-11-29 05:52:58 25 4
gpt4 key购买 nike

我目前正在使用 spring 使用 javascript 和 java 构建游戏。现在,它设置为每当玩家死亡时它都会向我设置的 Controller 提交发布请求。从这里开始,它将运行一个将分数插入数据库的方法。问题是,在使用 Spring 时,我必须有一个将它们指向 View 的返回语句。现在我只是将它们指向使整个页面刷新的游戏(重定向)。有没有办法捕获该发布请求并仅运行插入方法而不进行任何返回并将它们保持在同一页面上?谢谢。

 @PostMapping("/getScore")
public String getScore(@RequestParam(name = "scoreResult") String score) {
try {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
long finalScore = Long.parseLong(score);
long currentUserId = user.getId();
String currentDate = userRepo.currentDate();
userRepo.insertGameScore(currentDate, finalScore, currentUserId);
long playersSumScore = Long.parseLong(userRepo.getTotalPointsByUsername(user.getUsername()));
if (playersSumScore > 0 && playersSumScore <= 25000) {
userRepo.updateRank("junior", currentUserId);
} else if (playersSumScore > 25000 && playersSumScore <= 50000) {
userRepo.updateRank("mid", currentUserId);
} else if (playersSumScore > 50000 && playersSumScore <= 75000) {
userRepo.updateRank("senior", currentUserId);
} else if (playersSumScore > 75000 && playersSumScore <= 100000) {
userRepo.updateRank("wizard", currentUserId);
}
return "redirect:/";
} catch (ClassCastException e) {
return "redirect:/";
}

最佳答案

您需要一个 rest Controller 才能不返回 spring View 。

  1. 您可以使用@RestController 注释您的 Controller
  2. 你可以只说你的方法会有一个响应主体

例子:

 @PostMapping("/getScore")
@ResponseBody
public ResponseEntity<?> getScore(@RequestParam(name = "scoreResult") String score) {
// method logic
return new ResponseEntity<>(HttpStatus.ACCEPTED);
}

作为建议,端点名称令人困惑:包含 get 而它实际上是一个帖子。逻辑也应该封装在服务中。为了更清楚起见,请考虑此变体:

 @Autowired
UserService userService;

@PostMapping("/score/{score}")
@ResponseBody
public ResponseEntity<?> submitScore(@PathVariable(name = "score") String score) {
userService.submitScore(score);
return new ResponseEntity<>(HttpStatus.ACCEPTED);
}

关于java - 使用 spring 处理请求时如何不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com