一、回顾
1.文件上传
1.1引入fileupload的jar包
1.2在springmvc的配置文件中引入CommonsMutilpartResolver文件上传解析器
1.3在控制层在写入代码
2.拦截器
2.1创建一个类实现HandlerInterceptor接口
2.2在springmvc配置文件中配置该拦截器
3.数据校验
3.1引入Hibernate-validate的jar包
3.2在相应的实体类属性上加上校验注解
3.3在控制层接受参数的地方加上 @Valid 如果参数不符合校验 把错误封装到BindingResult对象中
二、restful风格
1.请求地址http://localhost:8080/Springmvc-04/user/6
2.控制层会根据你的请求方式调用不同的方法。
package com.zhiyou100.klb.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.zhiyou100.klb.bean.Users; @Controller //等价于<bean class="com.zhiyou100.klb.annotation.MyController" /> @RequestMapping("user") public class UsersController { //restFul ----> user/1 //method:表示该方法处理get请求 //1赋值给{uid} @RequestMapping(value="{uid}",method=RequestMethod.GET)//查询操作 public String findById(@PathVariable("uid")int id) { System.out.println("=====" + id); /*int a = 10/0;*/ //测试异常处理 return "index"; } @RequestMapping(method=RequestMethod.POST)//添加操作 public String insertUser(Users user) { System.out.println(user); return "redirect:login.jsp"; } }
3.put及delete提交方式
1.在web.xml文件中配置过滤器.
<!-- 把post请求转化为put和delete请求,使用——method表示真正的提交方式 --> <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.在控制层中
//springmvc 提供了一个过滤器可以吧post请求转化为put和delete请求 @RequestMapping(value="{id}",method=RequestMethod.PUT)//修改操作 @ResponseBody public String update(@PathVariable int id,Users user) { System.out.println("id=" + id + " " + user + "update"); return "index"; }
3.页面
三、springmvc进行异常处理
1.局部处理
@ExceptionHandler //当该类中发生异常时会由该方法来处理,局部处理 public ModelAndView error(Exception e) { ModelAndView mv = new ModelAndView(); mv.addObject("error", e); mv.setViewName("error"); return mv; }
2.定义一个全局异常类
package com.zhiyou100.klb.controller; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; @ControllerAdvice public class ErrorController { @ExceptionHandler //当该类中发生异常时会由该方法来处理,全局处理 public ModelAndView error(Exception e) { ModelAndView mv = new ModelAndView(); mv.addObject("error", e); mv.setViewName("error"); return mv; } }
四、Springmvc:常用注解
@Controller : 标注该类为控制层类
@RequestMappint: 标注请求的地址
@ResponseBody: 把java对象转化为json对象
@Valid: 标注校验该数据
@PathVariable: 接受uri地址的值赋给方法的参数
@SessionAttributes:将数据保存在会话中
@RequestParam:设置参数名
@ExceptionAdvice: 标注一个类为异常处理类
@ExceptionHandler: 标注一个方法为异常处理的方法
@InitBinder: 处理日期时间参数