- Redirecting with URL templates
@RequestMapping(value = "save")
public String saveDutyRelation(HttpServletRequest request, DutyRelation dutyRelation, Model model) throws Exception {
try {
requireNonNull(dutyRelation.getId(), "ID不能為空");
requireNonNull(dutyRelation.getDutyCode(), "職務(wù)編碼不能為空");
dutyRelationService.updateById(dutyRelation, dutyRelation.getId());
result.setMessageSuccess("保存成功");
} catch (BusinessException e) {
result.setCode(e.getCode());
result.setMessage(e.getMessage());
}
model.addAttribute("username", dutyRelation.getId());
model.addAttribute("id", dutyRelation.getId());
model.addAttribute("code", dutyRelation.getDutyCode());
return "redirect:/dutyRelation/{username}";
}
重定向的地址是:http://**/dutyRealtion/username?id=某個值&code=某個值
- Working with flash attrbutes
@RequestMapping(value = "save")
public String saveDutyRelation(HttpServletRequest request, DutyRelation dutyRelation, RedirectAttributes attributes) throws Exception {
result = new Result();
try {
requireNonNull(dutyRelation.getId(), "ID不能為空");
requireNonNull(dutyRelation.getDutyCode(), "職務(wù)編碼不能為空");
dutyRelationService.updateById(dutyRelation, dutyRelation.getId());
result.setMessageSuccess("保存成功");
} catch (BusinessException e) {
result.setCode(e.getCode());
result.setMessage(e.getMessage());
}
attributes.addAttribute("username", dutyRelation.getId());
attributes.addFlashAttribute(dutyRelation); // 可以根據(jù)類型推斷 key 是 “dutyRelation”
return "redirect:/dutyRelation/{username}";
}
原理:Flash attrbutes are stored in the session and then retrieved into the modal, surviving a redirect