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";
        } 
        
    }
  • 相关阅读:
    LaTeX表格紧跟文字 (不影响下方文本对齐)
    latex减少图片和图片解释文字之间的距离、调整公式与正文间距离,调整空白大小:
    请收藏,Linux 运维必备的 40 个命令总结,收好了~
    将公式直接转化为Latex代码的神器-Mathpix Snip
    if __name__ == '__main__':的作用和原理【转】
    PyCharm,Terminal 常用快捷键
    Python包中 __init__.py文件的作用
    pycharm写代码光标变成了黑框
    客户端链接Blog
    Sublime 中文标题乱码
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/8921184.html
Copyright © 2011-2022 走看看