本文共 3176 字,大约阅读时间需要 10 分钟。
二、springmvc提高
1.参数绑定之数组(删除多个商品) (1)修改jsp页面,添加CheckBox,添加删除按钮 (2)新建方法删除,将数组传到QueryVo里面 @RequestMapping(value = “/deletes.action”) public ModelAndView deletes(QueryVo vo){ ModelAndView mav = new ModelAndView(); mav.setViewName(“success”); return mav;在QueryVo新创建对象ids,然后添加set 和get方法Integer[] ids;
1.参数绑定之List
(1)修改jsp页面 显示前两个属性的input (2)新建方法修改,将List传到QueryVo里面 2.@RequestMapping的使用 (1)后面的method方法的值,只有get或者只有post时候只能用一个方法提交,下面的写法两种方法都可以提交 @RequestMapping(value = “/updates.action”,method = {RequestMethod.POST,RequestMethod.GET}) (2)多个url映射到一个方法 @RequestMapping(value = “/updates.action”,"/updateshaha.action") 两个url映射方法相同 3.controller层方法返回值 (1)几种返回类型 * 1.ModelAndView 无敌的 带着数据 返回视图路径 不建议使用 * 2.String 返回视图路径 model带数据 官方推荐此种方式 解耦 数据 视图 分离 MVC 建议使用 *3.void ajax 请求 合适 json格式数据 (response 异步请求使用 (2)采用string返回值操作 第一,controller方法返回类型改为String public String updateitem() 第二, 返回值为重定向 return “redirect:/itemEdit.action”; 4.异常处理器 (1)新建一个异常处理的类,跳转到error.jsp页面 public class CustomExceptionResolver implements HandlerExceptionResolver{ public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) { ModelAndView mav = new ModelAndView(); //判断异常类型 if(e instanceof MessageException){ //预期异常 MessageException me = (MessageException)e; mav.addObject(“error”, me.getMsg()); }else{ mav.addObject(“error”, “未知异常”); } mav.setViewName(“error”); return mav; } } (2)自定义异常 1. 新建一个自定义异常处理的类 public class MessageException extends Exception{public class MessageException extends Exception{ private String msg; public MessageException(String msg) { super(); this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } 2.在可能发生异常的地方写明异常信息 if(null == null){ throw new MessageException(“商品信息不能为空”); } (3)在配置文件中注入 5.上传图片 (1)在Tomcat中添加图片保存到本地的设置(F:\upload)(2) 在controller层的修改类中实现图片上传功能代码
1.public String updateitem(QueryVo vo,MultipartFile pictureFile) throws Exception{ 在修改类的入参里面添加MultipartFile pictureFile,pictureFile名字必须跟jsp页面中的name属性相同。 2.随机生成图片名 String name = UUID.randomUUID().toString().replaceAll("-", “”); 3.获取上传图片的后缀//jpg String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename()); 4.将图片存到本地盘符 pictureFile.transferTo(new File(“F:\upload\” + name + “.” + ext)); 5.将图片修改到数据库 vo.getItems().setPic(name + “.” + ext); (3) 在配置文件中添加上传图片实现类 (4)editItem.jsp页面图片代码 商品图片 <c:if test=" i t e m . p i c ! = n u l l " > < i m g s r c = " / p i c / {item.pic !=null}"> <img src="/pic/ item.pic!=null"><imgsrc="/pic/{item.pic}" width=100 height=100/> </c:if> 5.Json数据交互 (1)添加jq文件(2)添加js数据 (3)为数据交互编写java代码 @RequestMapping(value = "/json.action") public @ResponseBody Items json(@RequestBody Items items){ return items; } //两个@注解为了适应各种开发环境
5.Restful风格开发
(1)在路径映射的后面加上{id}字段 (2)在方法的入参上面加入id字段 @RequestMapping(value = “/itemEdit/{id}.action”) public ModelAndView toEdit1(@PathVariable 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;}