数据回显---SpringMVC学习笔记(九)

来源:互联网 发布:网络信息保密协议书 编辑:程序博客网 时间:2024/06/07 02:58

需求:

表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示。

第一种:针对简单数据类型的数据回显

对于简单数据类型,如:Integer、String、Float等使用Model将传入的参数再放到request域实现显示。 
eg:

如下:    @RequestMapping(value="/editItems",method={RequestMethod.GET})    public String editItems(Model model,Integer id)throws Exception{        //传入的id重新放到request域        model.addAttribute("id", id);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

第二种:针对pojo数据类型的数据回显

springmvc默认支持pojo数据回显,springmvc自动将形参中的pojo重新放回request域中,request的key为pojo的类名(首字母小写)。 
controller方法: 
这里写图片描述

springmvc自动将itemsCustom放回request,相当于调用下边的代码:

model.addAttribute("itemsCustom", itemsCustom);
  • 1
  • 1

jsp页面(editItems.jsp): 
这里写图片描述 
页面中的从“itemsCustom”中取数据。 
如果key不是pojo的类名(首字母小写)(也就是说上面jsp页面中红色方框中的属性不是itemsCustom),可以使用@ModelAttribute完成数据回显。

@ModelAttribute作用如下:

1、绑定请求参数到pojo并且暴露为模型数据传到视图页面

此方法可实现数据回显效果。 
controller方法: 
这里写图片描述

jsp页面(editItems.jsp): 
这里写图片描述

如果不用@ModelAttribute也可以使用model.addAttribute("item", itemsCustom)完成数据回显。

2、将方法返回值暴露为模型数据传到视图页面

controller方法: 
这里写图片描述

该方法是无法通过url来访问的,但是可以通过页面来获取该方法的返回值的数据内容。

jsp页面(editItems.jsp): 
这里写图片描述