• spring mvc处理方法返回方式


    Model:

    package org.springframework.ui;
    
    import java.util.Collection;
    import java.util.Map;
    
    public interface Model {
    
        Model addAttribute(String attributeName, Object attributeValue);
    
        Model addAttribute(Object attributeValue);
    
        Model addAllAttributes(Collection<?> attributeValues);
    
        Model addAllAttributes(Map<String, ?> attributes);
    
        Model mergeAttributes(Map<String, ?> attributes);
    
        boolean containsAttribute(String attributeName);
    
        Map<String, Object> asMap();
    
    }

    Map:

    package java.util;
    
    public interface Map<K,V> {
    
        int size();
    
        boolean isEmpty();
    
        boolean containsKey(Object key);
    
        boolean containsValue(Object value);
    
        V get(Object key);
    
        V put(K key, V value);
    
        V remove(Object key);
    
        void putAll(Map<? extends K, ? extends V> m);
    
        void clear();
    
        Set<K> keySet();
    
        Collection<V> values();
    
        Set<Map.Entry<K, V>> entrySet();
    
        interface Entry<K,V> {
    
            K getKey();
    
            V getValue();
    
            V setValue(V value);
    
            boolean equals(Object o);
    
            int hashCode();
        }
    
        // Comparison and hashing
    
        boolean equals(Object o);
    
        int hashCode();
    
    }

    ModelMap:

    package org.springframework.ui;
    
    import java.util.Collection;
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    import org.springframework.core.Conventions;
    import org.springframework.util.Assert;
    
    @SuppressWarnings("serial")
    public class ModelMap extends LinkedHashMap<String, Object> {
    
        public ModelMap() {
        }
    
        public ModelMap(String attributeName, Object attributeValue) {
            addAttribute(attributeName, attributeValue);
        }
    
        public ModelMap(Object attributeValue) {
            addAttribute(attributeValue);
        }
    
    
        public ModelMap addAttribute(String attributeName, Object attributeValue) {
            Assert.notNull(attributeName, "Model attribute name must not be null");
            put(attributeName, attributeValue);
            return this;
        }
    
        public ModelMap addAttribute(Object attributeValue) {
            Assert.notNull(attributeValue, "Model object must not be null");
            if (attributeValue instanceof Collection && ((Collection<?>) attributeValue).isEmpty()) {
                return this;
            }
            return addAttribute(Conventions.getVariableName(attributeValue), attributeValue);
        }
    
        public ModelMap addAllAttributes(Collection<?> attributeValues) {
            if (attributeValues != null) {
                for (Object attributeValue : attributeValues) {
                    addAttribute(attributeValue);
                }
            }
            return this;
        }
    
        public ModelMap addAllAttributes(Map<String, ?> attributes) {
            if (attributes != null) {
                putAll(attributes);
            }
            return this;
        }
    
        public ModelMap mergeAttributes(Map<String, ?> attributes) {
            if (attributes != null) {
                for (Map.Entry<String, ?> entry : attributes.entrySet()) {
                    String key = entry.getKey();
                    if (!containsKey(key)) {
                        put(key, entry.getValue());
                    }
                }
            }
            return this;
        }
    
        public boolean containsAttribute(String attributeName) {
            return containsKey(attributeName);
        }
    
    }

    View:

    package org.springframework.web.servlet;
    
    import java.util.Map;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.http.MediaType;
    
    public interface View {
    
        String RESPONSE_STATUS_ATTRIBUTE = View.class.getName() + ".responseStatus";
    
        String PATH_VARIABLES = View.class.getName() + ".pathVariables";
    
        String SELECTED_CONTENT_TYPE = View.class.getName() + ".selectedContentType";
    
        String getContentType();
    
        void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception;
    
    }

    ModelAndView:

    package org.springframework.web.servlet;
    
    import java.util.Map;
    
    import org.springframework.ui.ModelMap;
    import org.springframework.util.CollectionUtils;
    
    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) {
                getModelMap().addAllAttributes(model);
            }
        }
    
        public ModelAndView(View view, Map<String, ?> model) {
            this.view = view;
            if (model != null) {
                getModelMap().addAllAttributes(model);
            }
        }
    
        public ModelAndView(String viewName, String modelName, Object modelObject) {
            this.view = viewName;
            addObject(modelName, modelObject);
        }
    
        public ModelAndView(View view, String modelName, Object modelObject) {
            this.view = view;
            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 getModelMap();
        }
    
    
        public ModelAndView addObject(String attributeName, Object attributeValue) {
            getModelMap().addAttribute(attributeName, attributeValue);
            return this;
        }
    
        public ModelAndView addObject(Object attributeValue) {
            getModelMap().addAttribute(attributeValue);
            return this;
        }
    
        public ModelAndView addAllObjects(Map<String, ?> modelMap) {
            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 && isEmpty());
        }
    
    
        @Override
        public String toString() {
            StringBuilder sb = new StringBuilder("ModelAndView: ");
            if (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();
        }
    
    }

    String:

    void:

  • 相关阅读:
    Quora的技术探索
    基于移动互联网的电子商务个性化推荐的一些思考
    想个法子找出性能差的SQL
    结束——2012年微软精英挑战赛
    sql 查询时间执行长的sql语句
    NET好书盘点
    最后两个编程题
    网络七层协议
    使用WCF创建Restful服务
    一步一步学Entity FrameWork 4
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6705445.html
Copyright © 2020-2023  润新知