2021年3月3日星期三

springmvc处理模型数据

原文链 id="springmvc处理模型数据">springmvc处理模型数据

很多情况下页面上需要很多数据,单单返回页面是不行的,那么springmvc如何将数据返回到该页面呢

springmvc提供了四种方式来输出模型数据

  • ModelAndView: 处理返回值为ModelAndView时,可以将该对象中添加数据模型
  • Map及Model:入参为Model、ModelMap或Map时,处理方法返回时,Map中的数据会自动添加到模型中
  • @SessionAttributes: 将模型中的某个属性暂存到HttpSession中,以便多个请求之间共享数据
  • @ModelAttribute: 方法入参标注该注解后,入参的对象就会放到数据模型中

ModelAndView

主要有两个重要的变量

// 视图 可以传字符串(视图名字)也可以传View对象private Object view;// 数据模型 本质是一个mapprivate ModelMap model;

视图相关的方法

// 设置视图public void setViewName(String viewName) { this.view = viewName;}// 获取视图public String getViewName() { return this.view instanceof String ? (String)this.view : null;}

数据模型相关方法

// 获取数据模型protected Map<String, Object> getModelInternal() { return this.model;}public ModelMap getModelMap() { if (this.model == null) { this.model = new ModelMap(); } return this.model;}public Map<String, Object> getModel() { return this.getModelMap();}// 添加视图模型public ModelAndView addObject(String attributeName, Object attributeValue) { this.getModelMap().addAttribute(attributeName, attributeValue); return this;}

springmvc底层使用request.setAttribute(name,value)来将数据放入到请求中

示例:

@RequestMapping("/modelAndViewTest")public ModelAndView modelAndViewTest(){ // 视图名 ModelAndView modelAndView = new ModelAndView("modelAndViewTest"); // 包含的数据 modelAndView.addObject("dateTime",new Date()); return modelAndView;}

Map及Model

@RequestMapping("/mapTest")public String mapTest(Map<String,String> map){ System.out.println(map.getClass()); //class org.springframework.validation.support.BindingAwareModelMap map.put("name","张三"); return "hello";}

@SessionAttributes

在类上添加@SessionAttributes可以使该类所代表的路径下的session共享

@Controller@RequestMapping("helloWorld")// 设置name属性共享@SessionAttributes(value={"name"})public class HelloWorldController { @RequestMapping("/mapTest") public String mapTest(Map<String,String> map){  System.out.println(map.getClass()); //class org.springframework.validation.support.BindingAwareModelMap  map.put("name","张三");  return "hello"; } 	// 可以在该方法中获取到name值为张三 @RequestMapping("/sessionAttributes") public String sessionAttributes(HttpSession session){  System.out.println(session.getAttribute("name"));  return "hello"; }}

由于本身的博客百度没有收录,博客地 />






原文转载:http://www.shaoqun.com/a/600578.html

跨境电商:https://www.ikjzd.com/

aicpa:https://www.ikjzd.com/w/1373

zozotown:https://www.ikjzd.com/w/2180


原文链id="springmvc处理模型数据">springmvc处理模型数据很多情况下页面上需要很多数据,单单返回页面是不行的,那么springmvc如何将数据返回到该页面呢springmvc提供了四种方式来输出模型数据ModelAndView:处理返回值为ModelAndView时,可以将该对象中添加数据模型Map及Model:入参为Model、ModelMap或Ma
万色:https://www.ikjzd.com/w/2382
家得宝:https://www.ikjzd.com/w/1570
eori:https://www.ikjzd.com/w/499
好文荐读|疫情,正推动着跨境出口供应链外迁?:https://www.ikjzd.com/home/115943
亚马逊卖家如何安排与执行好每天的运营事情?:https://www.ikjzd.com/home/110310
亚马逊机器人发疯?亚马逊大批VC和SC账号被屠杀!竟是因为这封邮件……:https://www.ikjzd.com/home/10708

没有评论:

发表评论