我有此课程:@ModelAttribute具有Collection属性 - 值被添加到集合中,而不是被替换?
PreApprovalRequest类的属性为headings
,该属性在控制器中自动填充(请参阅页面上较低的Controller代码)。
public class PreApprovalRequest {
private Long id;
private String Description;
private Collection<Headings> headings; //this property!
}
而且控制器:
@Controller
@SessionAttributes({"preApprovalRequest", "productRecommendations"})
public class RequestController {
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public String submitResults(@ModelAttribute(value = "preApprovalRequest") @Valid PreApprovalRequest preApprovalRequest, BindingResult errors) {
//HERE: It looks like if I have some headings in the preApprovalRequest object already, the call of this method will not delete those, but will append to the existing list.
//save object in DB.
return "dashboard";
}
}
任何想法如何使弹簧更换集合对象,而不是增加呢?
这是SessionAttributes持有相同'preApprovalRequest'变量的预期行为。如果您不想从提交的内容中创建新的标题,只需将其从“SessionAttributes”中删除即可。 –
我每次都需要新的标题。这是问题,我不明白。 Spring似乎只是添加到标题列表中,而不是删除旧标题,只保留新标题。我不知道为什么会有人想要这样做,不明白为什么他们在Spring中像那样实现它?! – Stef