Spring Boot—10ModelAndViewModel,以及@ModelAttribute注解
Posted ParamousGIS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot—10ModelAndViewModel,以及@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"; } }
以上是关于Spring Boot—10ModelAndViewModel,以及@ModelAttribute注解的主要内容,如果未能解决你的问题,请参考以下文章