Spring系中常见注解用法说明

ゝ一世哀愁。 2022-05-22 07:42 274阅读 0赞

@PathVariable与@RequestParm

在spring mvc中,有@requestparm, @requestbody和@pathvariable 三种注解来获得浏览器端的参数,其中@requestparm是取自url中“?”之后的a=b&c=d,@requestbody 来自于请求体,而@pathvariable 则是从网址中取得参数;

感谢评论区@comeoon的订正,浏览器的get/put/delete/post方法都可以使用上述参数,但是由于浏览器get方法不能提供body,所以RequestBody实际获取的是一个map,参数来自于url中“?”之后的参数(实际上是request parameters)

假设代码如下:

  1. @Requestmappingvalue="/{
  2. category}/{
  3. brand}/{
  4. id},method=RequestMethod.POST)
  5. public void getbyid(@PathVariable("category") String category
  6. @PathVariable("brand") String brand
  7. @PathVariable("id") String id){
  8. //具体代码略
  9. }

@Controller与@RestController

@restcontroller为@controller和@responsebody的结合。在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,即直接渲染视图,与html页面配合使用的,在这种情况下,前后端的配合要求比较高,java后端的代码要结合html的情况进行渲染,使用model对象(或者modelandview)将user的属性渲染到页面。

  1. @Controller
  2. @RequestMapping(method = RequestMethod.GET, value = "/")
  3. public String getuser(Model model) throws IOException {
  4. model.addAttribute("name",bob);
  5. model.addAttribute("sex",boy);
  6. return "user";
  7. }

前端取数据:

  1. <html xmlns:th="http://www.thymeleaf.org">
  2. <body>
  3. <div>
  4. <p>"${name}"</p>
  5. <p>"${sex}"</p>
  6. </div>
  7. </body>
  8. </html>

而在@restcontroller中,返回的应该是一个对象,即return一个user对象,这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。

  1. @RestController
  2. @RequestMapping(method = RequestMethod.GET, value = "/")
  3. public User getuser( ) throws IOException {
  4. User bob=new User();
  5. bob.setName("bob");
  6. bob.setSex("boy");
  7. return bob;
  8. }

发表评论

表情:
评论列表 (有 0 条评论,274人围观)

还没有评论,来说两句吧...

相关阅读