欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springMVC注解总结

程序员文章站 2022-07-15 11:42:49
...

Springmvc注解总结

  1. @controller

该注解注在类上,目的是为被扫描成组件放入容器内

@Controller

public class AdminController {


}
  1. @Restcontroller(controller+responseBody)

简化开发:直接把@controller换成@restcontroller

如果hellocontroller下面所有的handler都是为了响应ajax请求,我们没必要再每一个handler里面加@responseBody

@RestController

public class HelloController {

     

    @RequestMapping("/index")

    public String index2(){

         

        return "zhuximing";

    }

     
    @RequestMapping("/index1")

    public String index3(){

         

        return "zhuximing";

    }

    
     

    @RequestMapping("/index3")

    public String index4(){

         

        return "zhuximing";

    }

    

}
  1. @restcontroller的源码
@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Controller

@ResponseBody

public @interface RestController {



    /**

     * The value may indicate a suggestion for a logical component name,

     * to be turned into a Spring bean in case of an autodetected component.

     * @return the suggested component name, if any

     * @since 4.0.1

     */

    String value() default "";



}

 

  1. @requestMapping

该注解可以注在类上,也可以注在方法上,

注在类上表示根路径,如下代码,访问地址/admin/index

@Controller

@RequestMapping("/admin")

public class AdminController {

    @RequestMapping("/index")

    public String index(){

     

        return "index";

    }

}

 

注在方法上,如下代码,访问地址是/index

@Controller

public class AdminController {

    @RequestMapping("/index")

    public String index(){

     

        return "index";

    }

}

 

注解属性:

  1. Value类型:string【】

//指定请求路径,当然一个Handler可以多个请求路径如:

@RequestMapping(value={"/a","/b"})

    public String aa(){

        return "index";

  }
  1. Method类型:RequestMethod【】

//指定请求方式,默认情况是:method={RequestMethod.post,requestMethod.GET}

//既可以接收get,也可以接收post

  1. Params类型:string[ ]

//指定请求参数

@RequestMapping(value=”testParms”,params={“param1=value1”,”param2”,”!param3”})

       Public String testParams(){

              System.out.printIn(”test params………”);

              Return “testParams”;

}
  1. RequestParam

该注解加在形参上,在进行简单参数绑定的时候,如果前端传来的数据名,和接收数据的形参名一致,可以不用这个注解,但是如果不一致,就必须使用该注解

注解属性

  1. Value 类型:String
@RequestMapping()

    //页面传来的是id,但是形参名是itemId,这个时候就需要在value中指定

    public String aa(@RequestParam(value="id") Integer itemId){

        return "index";

 }

 

  1. defaultValue类型:String
@RequestMapping()

    //defaultValue表示默认值,当页面前端不传id值,那么值为0

    public String index(@RequestParam(value="id",defaultValue="0") Integer itemId){

        return "index";

    }

 

  1. required类型:Boolean默认值true
@RequestMapping()

    //required表示必须传值,如果不传值不让访问

    public String index(@RequestParam(value="id",required=true) Integer itemId){

        return "index";

  }

 

  1. RequestBody和@ResponseBody

这两个注解是为ajax请求量身定做的。

@RequestBody: 注在形参前面  json数据转换成pojo对象

@ResponseBody:注在方法上, pojo转换成json

@RequestMapping("/jsontest")

    @ResponseBody

    public Items jsonTest(@RequestBody Items items) {

        return items;

}
  function sendJson() {<script type="text/javascript">

        $.ajax({

            type:"post",

            url:"${pageContext.request.contextPath }/item/jsontest.action",

            data:'{"id":1,"name":"电冰箱","price":1999.0}',

            contentType:"application/json;charset=utf-8",

            success:function(data){

                alert(data.id +":" +data.name);

            }

        });

    }

</script>


 

 

 

  1. @PathVariable

该注解是springMVC对restful风格的一种实现

@PathVariable:加在形参前面,获取路径参数,注意:即使/item/{id}和形参名一致也不能省略。

@RequestMapping("/itemEdit/{id}")

    //如果id和方法的形参一致@PathVariable中可以不写内容

    public String editItem(@PathVariable("id") Integer iddd, Model model) {

        Items items = itemService.getItemById(iid);

        //把数据传递给页面

        model.addAttribute("item", items);

        //返回逻辑视图

        return "editItem";

}

 

相关标签: springmvc注解总结