springMVC日记
Posted psxfd4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC日记相关的知识,希望对你有一定的参考价值。
一、restful风格
1.每一个uri代表一种资源
2.客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
/*restful -->user/1.do
method:表示该方法处理get请求
1赋值给id
@PathVariable 如果该参数与id名不同(假设为uid),则使用@PathVariable("uid")
*/
@RequestMapping(value="id",method=RequestMethod.GET)//表明其不是路径而是参数 public String selectById(@PathVariable int id) //。表明这是路径变量 System.out.println("selectByName==="+id); return "main";
/user/.do增添。restful风格和.do后缀的jsp配合有问题,这里必须加.do,否则会报无法使用post请求错误
@RequestMapping(value=".do",method=RequestMethod.POST) public String insert(User user) System.out.println(user); return "main";
put和delete方式需要web.xml中配置过滤器
<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>
在请求中,需要在数据中加一条 _method:"put"("delete")将post方式转化为put或delete
/user/1.do 修改,这里value值不能加.do
@RequestMapping(value="id",method=RequestMethod.PUT) @ResponseBody//将结果以内容形式返回,put是ajax才有的请求方式,必须加上 public String update(@PathVariable Integer id, User user) System.out.println(user+"根据"+id); return "main";
/user/1.do ,这里value值也不能加 .do
@RequestMapping(value= "id",method=RequestMethod.DELETE) @ResponseBody public String delete(@PathVariable Integer id) System.out.println("删除id"+id); return "main";
二、springmvc异常处理
现使用注解@ExceptionHandler
1.controller类中添加方法
@ExceptionHandler public ModelAndView error(Exception exception) ModelAndView mv=new ModelAndView(); mv.addObject("error", exception.getMessage()); mv.setViewName("error"); System.out.println("局部处理异常"); return mv;
2.新增一个controller类,加全局注解
@ControllerAdvice public class ExceptionController @ExceptionHandler public ModelAndView error(Exception exception) ModelAndView mv=new ModelAndView("error"); mv.addObject("error", exception.getMessage()); return mv;
exception一旦捕获到异常则转入该方法,收集异常信息并转发到异常页面。但是以上restful风格方法无法跳转到异常页面,暂时没有解决方法,普通方法无此问题
三、springmvc常见的注解
@Controller : 标注该类为控制层类。
@RequestMappint: 标注请求的地址
@ResponseBody: 把java对象转化为json对象。
@Valid: 标注校验该数据
@PathVariable: 接受uri地址的值赋给方法的参数
@SessionAttributes:设置其name中的key值默认保存到session域
@RequestParam:value 请求参数的参数名,作为参数映射名称;required 该参数是否必填;defaultValue 设置请求参数的默认值
@ExceptionAdvice: 标注一个类为异常处理类
@ExceptionHandler: 标注一个方法为异常处理的方法。
@InitBinder: 处理日期时间参数
以上是关于springMVC日记的主要内容,如果未能解决你的问题,请参考以下文章