转载链接: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;
}
}