Update @ModelAttribute javadoc

The @ModelAttribute javadoc now explicitly mentions that model content
is not available after an Exception is raised. This is a very common
question given that @ExceptionHandler methods are co-located with
@ModelAttribute and @RequestMapping methods.

Issue: SPR-10071
This commit is contained in:
Rossen Stoyanchev 2012-12-05 09:39:14 -05:00
parent 2b4ecfad12
commit d1a6ceecc2
1 changed files with 17 additions and 7 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2007 the original author or authors. * Copyright 2002-2012 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -22,22 +22,32 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.ui.Model;
/** /**
* Annotation that binds a method parameter or method return value * Annotation that binds a method parameter or method return value
* to a named model attribute, exposed to a web view. Supported * to a named model attribute, exposed to a web view. Supported
* for {@link RequestMapping} annotated handler classes. * for controller classes with {@link RequestMapping @RequestMapping}
* methods.
* *
* <p>Can be used to expose command objects to a web view, using * <p>Can be used to expose command objects to a web view, using
* specific attribute names, through annotating corresponding * specific attribute names, through annotating corresponding
* parameters of a {@link RequestMapping} annotated handler method). * parameters of an {@link RequestMapping @RequestMapping} method.
* *
* <p>Can also be used to expose reference data to a web view * <p>Can also be used to expose reference data to a web view
* through annotating accessor methods in a controller class which * through annotating accessor methods in a controller class with
* is based on {@link RequestMapping} annotated handler methods, * {@link RequestMapping @RequestMapping} methods. Such accessor
* with such accessor methods allowed to have any arguments that * methods are allowed to have any arguments that
* {@link RequestMapping} supports for handler methods, returning * {@link RequestMapping @RequestMapping} methods support, returning
* the model attribute value to expose. * the model attribute value to expose.
* *
* <p>Note however that reference data and all other model content is
* not available to web views when request processing results in an
* {@code Exception} since the exception could be raised at any time
* making the content of the model unreliable. For this reason
* {@link ExceptionHandler @ExceptionHandler} methods do not provide
* access to a {@link Model} argument.
*
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 2.5 * @since 2.5
*/ */