0
我有一個數據模型是這樣的:Spring MVC表單是否自動提交數據綁定子對象?
public class Report {
// report owner
private User user;
... typical getter setter ...
}
public class User {
... omitted for clarity
}
會發生什麼事是在創建報表時,將當前用戶設置爲報表用戶對象。編輯報表時,處理POST請求的spring控制器正在接收用戶對象爲空的報表。以下是我的控制器看起來像:
@Controller
@RequestMapping("/report")
public class ReportController {
@RequestMapping(value = "/edit/{id}", method = RequestMethod.GET)
public String editReport(@PathVariable Long id, Model model) {
Report r = backend.getReport(id); // fully loads object
model.addAttribute("report", report);
return "report/edit";
}
@RequestMapping(value = "/edit/{id}", method = RequestMethod.POST)
public String process(@ModelAttribute("report") Report r) {
backend.save(r);
return "redirect:/report/show" + r.getId();
}
}
我跑的東西扔在調試器,它看起來像在editReport方法的模型對象存儲滿載報表對象(我可以看到的報告裏面的用戶)。在表單jsp上,我可以執行以下操作:
${report.user.username}
並且呈現正確的結果。但是,當我查看流程方法中的調試器時,報告r中傳遞的值爲空用戶。我不需要做任何特殊的數據綁定來確保信息得到保留嗎?
春天是否簡單地從包含在窗體中的值中實例化一個新對象?因此,通過隱藏標籤丟失沒有嵌入到表單中的任何信息?或者我沒有正確設置。 – predhme 2010-03-17 16:43:03