springmvc 数据交互
2020-12-18 22:33
标签:需要 模板 htm ram springmvc pes require Servle variable 一、Controller相关注解 1、@Controller与@RestController注解 ①@Controller:添加在Controller 类上,指定Spring类的实例是一个控制器。 ②@RestController:添加在Controller 类上,是一个复合注解,它包含了@Controller和@ResponseBody注解,指定控制器内每个方法都是由@ResponseBody注解的。 2、@RequestMapping注解 @RequestMapping:映射请求到控制器的方法,可匹配属性url、HTTP method、request parameters、headers、media types等,常用属性如下: ①value属性 说明:@RequestMapping注解的默认属性,支持使用通配符映射。 用法1:@RequestMapping 添加在Controller类上,代表类中方法一个公共的访问路径。 用法2:@RequestMapping(value="url")添加在方法上,其中value可以省略,允许多个url对应一个方法,格式为value={"url1","url2"}。 ②method属性 说明:请求方式限定 @RequestMapping(method="method"),其中method可以省略(支持全部),同一方法允许多种访问方式,如method ={RequestMethod.GET,RequestMethod.POST}, 同样可以使用@GetMapping、@PostMapping、 @PutMapping、 @DeleteMapping、 @PatchMapping来精确映射。 ③params属性 说明:请求参数限定 @RequestMapping(value="url",params={"username","password!=123456"})代表请求路径必须包含参数username,值不做要求,若包含参数password,值不能为123456。 ④header属性 说明:请求头限定 @RequestMapping(value = "getUser",headers = "Referer=http://www.test.com")代表仅接收header中Referer属性包含http://www.test.com的请求(Referer可用于防盗链,恶意请求等)。 ⑤consumers与produces属性 说明:请求响应媒体类型限定 3、@RequestParam注解 @RequestParam:用于将指定的请求参数赋值给方法中的形参,其中包含3个参数: ①value:请求参数(通常用于起别名) ②required:默认为true(请求参数不能为null),需设为false解除限制。 ③defaultValue:参数为空的情况下,设置一个默认值(required自动设为 false)。 4、@PathVariable注解 @PathVariable:用来映射请求URL中绑定的占位符,并将对应参数绑定到controller处理方法的入参中。 5、@RequestBody与@ResponseBody注解 @RequestBody:作用在形参列表上,将前台发送过来的(json/xml)数据封装成javabean对象。 @ResponseBody:作用在方法上的,将方法的返回值以特定格式(json/xml)写入返回体中,从而将数据返还给客户端,不会进行视图解析及渲染HTML模板。 二、Controller方法返回值 1、ModelAndView 通过创建ModelAndView 对象,存储处理完后的结果数据,以及显示该数据的视图,其中Model代表模型,View代表视图,例如:addObject()存储数据,setViewName()存储视图。 2、String ①存储返回视图路径,通过形参Model对象携带数据,例如:addAttribute()以键值对形式存储数据(官方推荐方法,符合解耦思想)。 ②return "forward:url";实现转发 ③return "redirect:url";实现重定向 ④添加@ResponseBody注解返回字符串 3、void ①通过形参HttpServletResponse对象携带数据,例如:getWriter().write("字符串")(适用于ajax异步请求,即不需要返回视图)。 ②原始servlet中request.getRequestDispatcher("url").forward(request,response)实现转发。 ③原始servlet中response.sendRedirect("url")实现重定向。 ④添加@ResponseBody注解没有返回值 ps: 转发与重定向区别: 转发: 浏览器URL的地址栏不变; 是服务器行为(一次访问请求),2次跳转之间传输的信息不会丢; 重定向: 浏览器URL的地址栏改变; 是客户端行为(至少两次请求),2次跳转之间传输的信息会丢失; springmvc 数据交互 标签:需要 模板 htm ram springmvc pes require Servle variable 原文地址:https://www.cnblogs.com/Jansens520/p/13384660.html
上一篇:跟光磊学Linux运维-Windows安装Ubuntu服务版
下一篇:java.lang.NullPointerException出现原因及解决方法java.lang.NullPointerException解决方法