Spring中ModelAndView源码

2024-03-13 06:08

本文主要是介绍Spring中ModelAndView源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spring中ModelAndView源码



package org.springframework.web.servlet;

import java.util.Map;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.web.servlet.View;

public class ModelAndView {private Object view;
    private ModelMap model;
    private boolean cleared = false;

    public ModelAndView() {}public ModelAndView(String viewName) {this.view = viewName;
    }public ModelAndView(View view) {this.view = view;
    }public ModelAndView(String viewName, Map<String, ?> model) {this.view = viewName;
        if(model != null) {this.getModelMap().addAllAttributes(model);
        }}public ModelAndView(View view, Map<String, ?> model) {this.view = view;
        if(model != null) {this.getModelMap().addAllAttributes(model);
        }}public ModelAndView(String viewName, String modelName, Object modelObject) {this.view = viewName;
        this.addObject(modelName, modelObject);
    }public ModelAndView(View view, String modelName, Object modelObject) {this.view = view;
        this.addObject(modelName, modelObject);
    }public void setViewName(String viewName) {this.view = viewName;
    }public String getViewName() {return this.view instanceof String?(String)this.view:null;
    }public void setView(View view) {this.view = view;
    }public View getView() {return this.view instanceof View?(View)this.view:null;
    }public boolean hasView() {return this.view != null;
    }public boolean isReference() {return this.view instanceof String;
    }protected Map<String, Object> getModelInternal() {return this.model;
    }public ModelMap getModelMap() {if(this.model == null) {this.model = new ModelMap();
        }return this.model;
    }public Map<String, Object> getModel() {return this.getModelMap();
    }public ModelAndView addObject(String attributeName, Object attributeValue) {this.getModelMap().addAttribute(attributeName, attributeValue);
        return this;
    }public ModelAndView addObject(Object attributeValue) {this.getModelMap().addAttribute(attributeValue);
        return this;
    }public ModelAndView addAllObjects(Map<String, ?> modelMap) {this.getModelMap().addAllAttributes(modelMap);
        return this;
    }public void clear() {this.view = null;
        this.model = null;
        this.cleared = true;
    }public boolean isEmpty() {return this.view == null && CollectionUtils.isEmpty(this.model);
    }public boolean wasCleared() {return this.cleared && this.isEmpty();
    }public String toString() {StringBuilder sb = new StringBuilder("ModelAndView: ");
        if(this.isReference()) {sb.append("reference to view with name \'").append(this.view).append("\'");
        } else {sb.append("materialized View is [").append(this.view).append(']');
        }sb.append("; model is ").append(this.model);
        return sb.toString();
    }
}

这篇关于Spring中ModelAndView源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803866

相关文章

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强