我想重定向到前一頁是一個域對象是無效的。例如,使用Address的域對象。Spring MVC轉發到新的URL保持現有
@Autowired
private Address address;
@RequestMapping(method = RequestMethod.GET)
public String addressPage(
ModelMap model
) throws StdAddFault {
model.addAttribute("address", address);
return TILE_GET_STARTED_ADDRESS;
}
@RequestMapping(value = "/validate", method = RequestMethod.POST)
public String selectAddress(
@Valid Address address,
BindingResult result,
Model model,
HttpSession session
) throws StdAddFault {
if(result.hasErrors()) {
model.addAttribute("address", address);
return "/address";
}
...
}
問題是在請求之後,而不是/地址是/ address/validate。這似乎有點誤導,但如果我使用重定向或轉發,我失去了我的信息。
有沒有什麼辦法使控制器/地址後的url(僅適用於無效數據)?
更新
我證實了上述不起作用。這確實有效,但我擔心一個請求可能會覆蓋另一個地址。這是一個有效的關注嗎?
if(result.hasErrors()) {
this.address = address;
return "redirect:/get-started/address";
}
您確定你沒有登錄重定向信息嗎?通常情況下,如果您將它們添加到模型中,然後重定向它們將保留。 –
我會仔細檢查並確認。我得到它使用this.address =地址和重定向,但我不知道這將如何在生產中工作。例如,如果發送多個請求,每個請求都有一個實例,或者一個實例會覆蓋另一個實例。 – Jackie
您可以添加您的地址對象作爲請求的屬性和使用正,這將生動地表現了對象,然後在控制器「/驗證」得到請求對象 –