我對 Spring MVC 很陌生。我想將模型屬性從我的 POST 方法傳遞給 GET 方法。我怎么能這樣做?
這是我的 POST 服務:
@PostMapping("reset-game")
public ModelAndView resetGame(@RequestBody String body, Model model) {
String[] args = body.split("&");
String mode = "";
for (String arg : args) {
if ("mode".equals(arg.split("=")[0])) {
mode = arg.split("=")[1];
break;
}
}
Game resettedGame = gameService.resetGame(mode);
model.addAttribute("mode", mode);
model.addAttribute("boardSize", resettedGame.getBoardSize());
model.addAttribute("moves", getJSONMoves(resettedGame.getMoves()).toString());
return new ModelAndView("redirect:/board");
}
這是我的 GET 服務,POST 方法中定義的屬性不會傳遞給 GET 方法。有誰能夠幫我 ?=)
@GetMapping("/board")
public String board() {
return "board";
}
uj5u.com熱心網友回復:
用來RedirectAttributes實作這一點。
@PostMapping("reset-game")
public ModelAndView resetGame(@RequestBody String body, RedirectAttributes redirectedAttributes) {
String[] args = body.split("&");
String mode = "";
for (String arg : args) {
if ("mode".equals(arg.split("=")[0])) {
mode = arg.split("=")[1];
break;
}
}
Game resettedGame = gameService.resetGame(mode);
redirectedAttributes.addFlashAttribute("mode", mode);
redirectedAttributes.addFlashAttribute("boardSize", resettedGame.getBoardSize());
redirectedAttributes.addFlashAttribute("moves", getJSONMoves(resettedGame.getMoves()).toString());
return new ModelAndView("redirect:/board");
}
從檔案中,Flash 屬性執行以下操作。
重定向后,Flash 屬性會自動添加到為目標 URL 提供服務的控制器的模型中。
在get方法上,單獨或通過模型使用引數。
假設 boardSize 是整數且從不為空;
@GetMapping("/board")
public String board(@RequestParam String mode, @RequestParam int boardSize, @RequestParam String moves) {
return "board";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/446010.html
