zoukankan      html  css  js  c++  java
  • Spring Boot—10ModelAndView、Model,以及@ModelAttribute注解


    package com.sample.smartmap.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.sample.smartmap.entity.User;
    import com.sample.smartmap.service.UserService;
    
    @Controller
    @RequestMapping("/model")
    public class ModelAndViewController {
        
        @Autowired UserService userService;
        /**
         * 一个beetl模板测试。因为视图扩展名字是btl
         * @param userId
         * @param model
         * @return
         */
        @GetMapping(path = "/{userId}/get.html")
        public String getUser(@PathVariable Long userId,Model model) {
             User userInfo =  userService.getUserById(userId);
             //model.addAttribute(userInfo); 与下面一行作用一样,但这会有潜在问题
             model.addAttribute("user", userInfo);
             return "/userInfo.html";
        }
        /**
         * 使用freemaker模板测试,freemaker会寻找/userInfo.ftl 模板
         * @param userId
         * @param view
         * @return
         */
        @GetMapping(path = "/{userId}/get2.html")
        public ModelAndView getUser2(@PathVariable Long userId,ModelAndView view) {
             User userInfo =  userService.getUserById(userId);
             //model.addAttribute(userInfo);
             view.addObject("user", userInfo);
             view.setViewName("/userInfo");
             return view;
        }
        
        
    }


    package com.sample.smartmap.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.sample.smartmap.controller.form.OrderPostForm;
    import com.sample.smartmap.service.UserService;
    
    @Controller
    @RequestMapping("/modelattribute")
    public class ModelAttributeController {
        @Autowired UserService userService;
        /**
         * Controller方法中的公共放啊,调用方法前先调用此方法。
         * @param id
         * @param model
         */
        @ModelAttribute
        public void findUserById(@PathVariable Long id,Model  model) {
            model.addAttribute("user", userService.getUserById(id));
        }
        
        @GetMapping(path = "/{id}/get.json")
        @ResponseBody
        public String getUser(Model model) {
            System.out.println(model.containsAttribute("user"));
            return "success";
        } 
        
    }
  • 相关阅读:
    Android 面试知识集1
    Android 开发自己的网络收音机2——电台列表(SlidingMenu侧滑栏)
    Android 程序drawable资源保存到data目录
    Android 开发自己的网络收音机1——功能要求及设计方案
    Android内存机制分析2——分析APP内存使用情况
    Android内存机制分析1——了解Android堆和栈
    Android Gallery实现3D相册(附效果图+Demo源码)
    Android 后台发送邮件 (收集应用异常信息+Demo代码)
    纯代码写UI的时候,如何指定style?
    解决SimpleCursorAdapter不能自动更新的问题
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/8921184.html
Copyright © 2011-2022 走看看