SpringMVC的Contrller控制器层的三种写法详解

转载链接:https://www.cnblogs.com/zjf-1992/p/5736101.html

MVC框架是什么

模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。

package com.platform.mvc.system.layer.controller.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.catalina.connector.Request;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user")
public class userCtroller {
    
    //方式一:String
    @RequestMapping("test")
    public String list(Map<String, Object> map){
        创建一个数组对象
        List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>();
        for (int i = 0; i <10; i++) {
            //存储对象map<K, V>
            Map<String, Object> map1 = new HashMap<String, Object>();
            map.put("name", "HelloKitty"+i);
            map.put("age", i);
            map.put("dept", "技术部"+i);
            //将map对象存储在userList数组中
            userList.add(map);
        }
        //[{age=Avenstar4, name=Avenstar4}]
        map.put("elList", userList);
        //返回视图
        return "system/userList";
    }
    
    
    //方式二:ModelAndView
    @RequestMapping(value="test2", method=RequestMethod.GET)
    public ModelAndView list2(Model model){
        //创建一个视图对象
        ModelAndView view = new ModelAndView();
        //创建一个数组对象
        List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < 5; i++) {
            //存储对象map<K, V>
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("name", "HelloKitty"+i);
            map.put("age", i);
            map.put("dept", "技术部"+i);
            userList.add(map);
        }
        //绑定数据
        model.addAttribute("userList", userList);
        //设置视图
        view.setViewName("system/userList");

        return view;
    }
    
    
    //方式三:AJAX
    //接收参数:@RequestParam(value="username", required=true, defaultValue="hello") String username
    @RequestMapping(value="/test3", method=RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> list3(HttpServletRequest request, @RequestParam(value="username", required=true, defaultValue="hello") String username){
       
        Map<String, Object> map = new HashMap<>();
        //创建一个数组对象
        List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < 5; i++) {
            //存储对象map<K, V>
            Map<String, Object> map1 = new HashMap<String, Object>();
            map1.put("name", "HelloKitty"+i);
            map1.put("age", i);
            map1.put("dept", "技术部"+i);
            userList.add(map1);
        }
        
        map.put("userList", userList);

        return map;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_30764991/article/details/102655985
今日推荐