Class ModelFactory


  • public final class ModelFactory
    extends Object
    Assist with initialization of the Model before controller method invocation and with updates to it after the invocation.

    On initialization the model is populated with attributes temporarily stored in the session and through the invocation of @ModelAttribute methods.

    On update model attributes are synchronized with the session and also BindingResult attributes are added if missing.

    Since:
    3.1
    Author:
    Rossen Stoyanchev
    • Method Detail

      • initModel

        public void initModel​(NativeWebRequest request,
                              ModelAndViewContainer container,
                              HandlerMethod handlerMethod)
                       throws Exception
        Populate the model in the following order:
        1. Retrieve "known" session attributes listed as @SessionAttributes.
        2. Invoke @ModelAttribute methods
        3. Find @ModelAttribute method arguments also listed as @SessionAttributes and ensure they're present in the model raising an exception if necessary.
        Parameters:
        request - the current request
        container - a container with the model to be initialized
        handlerMethod - the method for which the model is initialized
        Throws:
        Exception - may arise from @ModelAttribute methods
      • getNameForReturnValue

        public static String getNameForReturnValue​(@Nullable
                                                   Object returnValue,
                                                   MethodParameter returnType)
        Derive the model attribute name for the given return value. Results will be based on:
        1. the method ModelAttribute annotation value
        2. the declared return type if it is more specific than Object
        3. the actual return value type
        Parameters:
        returnValue - the value returned from a method invocation
        returnType - a descriptor for the return type of the method
        Returns:
        the derived name (never null or empty String)