As said at this link under section Using @ModelAttribute on a method argument
An @ModelAttribute on a method argument indicates the argument should be retrieved from the model.
But i have observed that even without annotating UserDetail with @ModelAttribute , userDetail is populated correctly. Here is relevant code snippet
<form:form id="userForm" action="path/userDetail" method="post" commandName="userDetail"> @RequestMapping(value="/userDetail", method=RequestMethod.POST) public String processUserDetail(UserDetail userDetail, HttpServletRequest request, HttpServletResponse response, Locale locale) {} So my question does spring itself populate the project custom objects (in this case userDetail) present in handler method arguments even without annotating @ModelAttribute. I believe @ModelAttribute plays role while rendering view but while submission spring automatically populates the method argument if it is present in model ?