spring mvc:基于MVC思想的应用框架的快速入门( 六 )
在前面传递过来 , 我们仅仅想要一个id而已 , 所以我们可以直接写上id参数 , 这样就可以直接获取这个参数id 。 当请求的参数名称和处理器形参名称一致时会将请求参数与形参进行绑定 。
这样 , 从Request取参数的方法就可以进一步简化 。
参数类型推荐使用包装数据类型 , 因为基础数据类型不可以为null
整形:Integer、int
字符串:String
单精度:Float、float
双精度:Double、double
布尔型:Boolean、boolean
说明:对于布尔类型的参数 , 请求的参数值为true或false 。 或者1或0
请求url:
http://localhost:8080/xxx.action?id=2&status=false
处理器方法:
public String editItem(Model model,Integer id,Boolean status)
public ModelAndView toEdit(Integer id, HttpServletRequest request,HttpServletResponse response ,HttpSession session,Model model){ Items items = itemService.selectItemsById(id); ModelAndView mav = new ModelAndView(); //数据 mav.addObject(''item'', items); mav.setViewName(''editItem''); return mav; }这样就可以直接将请求的id和参数id对应上 , 但是我们需要注意的是 , 我们必须要二者名字一样 , 如果二者的名字不一致也没有关系 , 我们可以配置一下:
public ModelAndView toEdit(@RequestParam(valuehttp://news.hoteastday.com/a/= ''id'',required = false,defaultValuehttp://news.hoteastday.com/a/= ''1'') Integer idid......)
6.2.2. @RequestParam 使用@RequestParam常用于处理简单类型的绑定 。value:参数名字 , 即入参的请求参数名字 , 如value=http://news.hoteastday.com/a/“itemId”表示请求的参数区中的名字为itemId的参数的值将传入 required:是否必须 , 默认是true , 表示请求中一定要有相应的参数 , 否则将报错 TTP Status 400 - Required Integer parameter'XXXX' is not present defaultValue:默认值 , 表示如果请求中没有同名参数时的默认值 定义如下: @RequestMapping(''/itemEdit'') public String queryItemById(@RequestParam(valuehttp://news.hoteastday.com/a/= ''itemId'', required = true, defaultValuehttp://news.hoteastday.com/a/= ''1'') Integer id, ModelMap modelMap) { // 根据id查询商品数据 Item item = this.itemService.queryItemById(id); // 把商品数据放在模型中 modelMap.addAttribute(''item'', item); return ''itemEdit''; }1.1. 绑定pojo类型
1.1.1. 需求
将页面修改后的商品信息保存到数据库中 。
1.1.2. 需求分析
请求的url:/updateItem.action
参数:表单中的数据 。
响应内容:更新成功页面
1.1.3. 使用pojo接收表单数据
如果提交的参数很多 , 或者提交的表单中的内容很多的时候,可以使用简单类型接收数据,也可以使用pojo接收数据 。
要求:pojo对象中的属性名和表单中input的name属性一致 。
请求的参数名称和pojo的属性名称一致 , 会自动将请求参数赋值给pojo的属性 。
public ModelAndView updateitem(QueryVo vo){ //修改 itemService.updateItemsById(vo.getItems()); ModelAndView mav = new ModelAndView(); mav.setViewName(''success''); return mav;注意:
提交的表单中不要有日期类型的数据 , 否则会报400错误 。 如果想提交日期类型的数据需要用到后面的自定义参数绑定的内容 。
乱码问题
乱码问题只需要配置一个编码拦截器 , 然后拦截的内容和前端控制器一样就好了 , 然后给这个拦截类配置一个参数encoding使用UTF-8就可以了 , 在web.xml
- 华为发布首个基于5G MEC云边端协同的工业视觉解决方案
- 嘻哈飞车族腻害,高人都是这样玩SpringBoot整合RabbitMQ
- 上海市浦东模范中学|[浦东]浦东模范中学:“基于素养培育 构建四适课堂”浦兴学区语文主题研讨活动
- 行业互联网华为发布首个基于5G MEC云边端协同的工业视觉解决方案
- 上海市浦东新区竹园小学|[浦东]竹园小学:基于标准 落实要求 均衡导向 集群发展-学校沪东校区接受浦东新区小学沪东学区化课程与教学调研纪实
- 和讯名家 苹果在赌什么?
- 和讯名家苹果在赌什么?
- 柠檬少年CHCC2020干货 | 达实智能杨雪来:基于物联网技术的达实智慧医院整体解决方案
- 英特尔|英特尔披露基于Ice Lake微架构Xeon处理器的安全新特性
- 行业互联网贸泽电子与BittWare签订全球分销协议 分销基于英特尔和Xilinx FPGA的加速卡
