クライアント側の JSP で削除されたエントリが、リクエストがコントローラーに到達したときに再表示されるという点で、Spring MVC に問題/機能が見られます。
以下は、コントローラーでの GET リクエストのスニペットです。
AssignmentRulesFormDTO assignmentRulesFormDTO = ...
model.addAttribute("assignmentRulesForm", assignmentRulesFormDTO);
return new ModelAndView(getPageName(), model);
そのため、AssignmentRulesFormDTO には多数の Rule オブジェクトが含まれており、クライアント側ではこれらのオブジェクトの 1 つが削除されています。削除されたオブジェクトがサーバーに渡されていないことを Fiddler で確認しました。ただし、コントローラーの save メソッドに到達すると、オブジェクトが再表示されます。これは、save メソッドのメソッド シグネチャです。
public ModelAndView saveRuleAttributesAndRules(@ModelAttribute("assignmentRulesForm")
AssignmentRulesFormDTO assignmentRulesForm, BindingResult bindingResult, HttpSession session, Principal principal,
ModelMap model) {
そのため、Spring がコントローラーに到達する前に何らかのマージを実行しているように見えます。
したがって、この現象は何と呼ばれ、この特定のセッション属性に対してどのようにオフにすればよいのでしょうか?