在为表单 jsp 提供视图名称的处理程序中,您可以初始化一个新的模型 bean。这将导致 bean 具有所有 bean 字段的默认值。或者,您可以从可能已设置 bean 字段值的应用程序上下文中注入它。
将此 bean 作为模型属性传递给 jsp 表单视图。
bean = context.getBean("beanName") or bean = new Bean();
modelAndView.addObject("bean",bean);
现在使用@SessionAttributes 将此模型对象包含在会话中。
@SessionAttributes("bean")
一旦您的处理程序方法完成执行,您的 bean 就会与所有字段值一起写入会话范围内。
您可以使用以下表格来更新这 20 个字段
<form:form action="handler's requestMapping" modelattribute="bean">
<form:input path="bean's first property name" />
<%-- other properties similarly -->
</form:form>
在处理表单提交的处理方法中,使用@ModelAttribute 访问作为模型属性提交给表单的bean。
@RequestMapping("XXXX")
public ModelAndView/String handlerMethod(@ModelAttribute("bean") Bean bean) { /* method code here */
}
只要在提交表单时调用此处理程序方法,spring 就会从会话范围读取您的 bean,同时仅更新您在表单中更新的 20 个字段。这样,只有 20 个字段被更新,而其他字段保持原样。