Example usage for org.springframework.web.method.support ModelAndViewContainer setBindingDisabled

List of usage examples for org.springframework.web.method.support ModelAndViewContainer setBindingDisabled

Introduction

In this page you can find the example usage for org.springframework.web.method.support ModelAndViewContainer setBindingDisabled.

Prototype

public void setBindingDisabled(String attributeName) 

Source Link

Document

Programmatically register an attribute for which data binding should not occur, not even for a subsequent @ModelAttribute declaration.

Usage

From source file:org.springframework.web.method.annotation.ModelFactory.java

/**
 * Invoke model attribute methods to populate the model.
 * Attributes are added only if not already present in the model.
 */// ww w  . ja  va 2 s.co  m
private void invokeModelAttributeMethods(NativeWebRequest request, ModelAndViewContainer container)
        throws Exception {

    while (!this.modelMethods.isEmpty()) {
        InvocableHandlerMethod modelMethod = getNextModelMethod(container).getHandlerMethod();
        ModelAttribute ann = modelMethod.getMethodAnnotation(ModelAttribute.class);
        Assert.state(ann != null, "No ModelAttribute annotation");
        if (container.containsAttribute(ann.name())) {
            if (!ann.binding()) {
                container.setBindingDisabled(ann.name());
            }
            continue;
        }

        Object returnValue = modelMethod.invokeForRequest(request, container);
        if (!modelMethod.isVoid()) {
            String returnValueName = getNameForReturnValue(returnValue, modelMethod.getReturnType());
            if (!ann.binding()) {
                container.setBindingDisabled(returnValueName);
            }
            if (!container.containsAttribute(returnValueName)) {
                container.addAttribute(returnValueName, returnValue);
            }
        }
    }
}