in the handler that supplies the view name for the form jsp you could initialize a new model bean. this would result in a bean having default values of all the bean's field. Or you could inject it from the application context where the values of the bean's field may have been set.
pass this bean as a model attribute to the jsp form view.
bean = context.getBean("beanName") or bean = new Bean();
modelAndView.addObject("bean",bean);
now include this model object in the session using @SessionAttributes.
@SessionAttributes("bean")
as soon as your handler method finishes execution your bean would be written in the session scope with all the field values.
you could use the following form to update the 20 fields
<form:form action="handler's requestMapping" modelattribute="bean">
<form:input path="bean's first property name" />
<%-- other properties similarly -->
</form:form>
in the handler method catering to the form submission use @ModelAttribute to access the bean which was submitted as model attribute to the form.
@RequestMapping("XXXX")
public ModelAndView/String handlerMethod(@ModelAttribute("bean") Bean bean) { /* method code here */
}
as soon as this handler method is invoked on form's submission the spring will read your bean from the session scope and at the same time update only those 20 fields which you have updated in the form. This way only 20 of your fields were updated while the others are retained as it is.