• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用springmvc处理模型数据

java 搞代码 4年前 (2022-01-05) 22次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了如何利用springmvc 处理模型数据,帮助大家更好的理解和学习使用springmvc,感兴趣的朋友可以了解下

springmvc处理模型数据

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

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

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

ModelAndView

主要有两个重要的变量

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

视图相关的方法

 // 设置视图 public void setVie<b style="color:transparent">来源gao@!dai!ma.com搞$$代^@码!网</b>wName(String viewName) { this.view = viewName; } // 获取视图 public String getViewName() { return this.view instanceof String ? (String)this.view : null; }

数据模型相关方法

 // 获取数据模型 protected Map getModelInternal() { return this.model; } public ModelMap getModelMap() { if (this.model == null) { this.model = new ModelMap(); } return this.model; } public Map 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 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 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"; } }

@ModelAttribute

用在无返回值的方法

 package com.yiidian.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class ModelAttributeController { //没有返回值的情况 @ModelAttribute public void myModel(@RequestParam(required = false) String name, Model model) { model.addAttribute("name", name); } @RequestMapping(value = "/model") public String model() { return "success"; } }

用在带返回值的方法

 package com.yiidian.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class ModelAttributeController { /** * 带返回值的情况 * @param name */ @ModelAttribute("name") public String myModel(@RequestParam(required = false) String name) { return name; } @RequestMapping(value = "/model") public String model() { return "success"; } }

应用在方法的参数上

 @ModelAttribute("name") public String myModel(@RequestParam(required = false) String name) { return name; } //应用在方法的参数行 @RequestMapping(value = "/model") public String model(@ModelAttribute("name") String name) { System.out.println("name="+name); return "success"; }

以上就是利用springmvc 处理模型数据的详细内容,更多关于springmvc 处理模型数据的资料请关注gaodaima搞代码网其它相关文章!

以上就是利用springmvc处理模型数据的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用springmvc处理模型数据

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址