微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC中处理模型数据的几种方式【记录】

SpringMVC提供了以下几种途径输出模型数据:

  • ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据;
  • Model、ModelMap及Map:入参为org.springframeword.ui.Model、org.springframeword.ui.ModelMap或java.util.Map时,处理方法返回时,Map中的数据会自动添加到模型中;
  • @SessionAttribute:将模型中的某个属性暂存到HttpSession中,以便多个请求之间可以共享这个属性
  • @modelattribute方法入参标注该注解后,入参的对象就会放到模型中。

1、ModelAndView:

控制器处理方法的返回值如果为ModelAndView时,则既包含视图信息,也包含模型数据信息。

  • springMVC会把ModelAndView的model中的数据放入到request域对象中。

添加模型数据:

  • ModelAndView addobject(String attributeName, Object attributeValue)
  • ModelAndView addAllObject(Map<String,?> modelMap)

设置视图:

  • void setView(View view)
  • void setViewName(String viewName)
@RequestMapping("/demo")
public ModelAndView demo(){
	String viewName = success;
	ModelAndView modelAndView = new ModelAndView(viewName);
	//添加模型数据到ModelAndView中
	modelAndView.addobject("date", new Date());
	return modelAndView;
}

2、Model、ModelMap及Map:

SpringMVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器,如果方法的入参为Map或Model类型,SpringMVC会将隐含模型的引用传递给这些入参,方法体内,可以通过这个入参对象访问到模型中的所有数据,也可以向模型中添加新的属性数据。

处理方法入参为以下三种之一时,处理方法返回时,Map中的数据会自动添加到模型中:

  • java.uti.Map
  • org.springframework.ui.Model
  • org.springframework.ui.ModelMap

    在这里插入图片描述

@RequestMapping("/modelTest")
public String testMap(Model model) {
    model.addAttribute("names", Arrays.asList("Tom", "Jack", "Anna"));
    return "success";
}

3、@SessionAttributes注解:用法详解

4、@modelattribute注解:用法详解

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐