• SpringMvc处理模型数据(也就是从数据库中查询出来的数据放到请求域中)


    这讲的是从数据库中查询到的数据,存放到请求域中。然后页面上直接可以从请求域中获取值。

    有4种方式:

      1):ModelAndView   是作为一个对象。

     1 /**
     2      * 目标方法的返回值可以是 ModelAndView 类型。 
     3      * 其中可以包含视图和模型信息
     4      * SpringMVC 会把 ModelAndView 的 model 中数据放入到 request 域对象中. 
     5      * @return
     6      */
     7     @RequestMapping("/testModelAndView")
     8     public ModelAndView testModelAndView(){
     9         String viewName = SUCCESS;
    10         ModelAndView modelAndView = new ModelAndView(viewName);
    11         
    12         //添加模型数据到 ModelAndView 中.
    13         modelAndView.addObject("time", new Date());
    14         
    15         return modelAndView;
    16     }

    从页面上获取:

        time: ${requestScope.time }

    2:Model和Map   这两个作为参数给传进去。

    1 @RequestMapping("/testMap")
    2     public String testMap(Map<String, Object> map){
    3         System.out.println(map.getClass().getName()); 
    4         map.put("names", Arrays.asList("Tom", "Jerry", "Mike"));
    5         return SUCCESS;
    6     }

    3:@ModelAttribute

    /**
         * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用!
         * 2. @ModelAttribute 注解也可以来修饰目标方法 POJO 类型的入参, 其 value 属性值有如下的作用:
         * 1). SpringMVC 会使用 value 属性值在 implicitModel 中查找对应的对象, 若存在则会直接传入到目标方法的入参中.
         * 2). SpringMVC 会一 value 为 key, POJO 类型的对象为 value, 存入到 request 中.
         */
        @ModelAttribute
        public void getUser(@RequestParam(value="id",required=false) Integer id,
                Map<String, Object> map){
            System.out.println("modelAttribute method");
            if(id != null){
                //模拟从数据库中获取对象
                User user = new User(1, "Tom", "123456", "tom@atguigu.com", 12);
                System.out.println("从数据库中获取一个对象: " + user);
                
                map.put("user", user);
            }
        }

  • 相关阅读:
    一文了解网络编程之走进TCP三次握手和HTTP那些你不知道的事
    并发编程面试必备之ConcurrentHashMap源码解析
    java延迟队列DelayQueue及底层优先队列PriorityQueue实现原理源码详解
    聊一聊面试中常问的延时队列
    面试必备HashMap源码解析
    synchronized解锁源码分析
    synchronized的jvm源码加锁流程分析聊锁的意义
    jvm源码解析java对象头
    从ReentrantLock源码入手看锁的实现
    从synchronized和lock区别入手聊聊java锁机制
  • 原文地址:https://www.cnblogs.com/bulrush/p/8678002.html
Copyright © 2020-2023  润新知