MVC框架是什么
模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。
Contrller控制器层的三种写法
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; } }
【资料参考】 http://jinnianshilongnian.iteye.com/blog/1705701
http://www.importnew.com/15141.html