【spring】部分注解

@RequestBody:

    接收json对象的字符串,ajax请求时指定要dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

    需要把所有请求参数作为json解析,请求的url不能包含key=value


@RequestMapping

    映射URL到控制器类中(或到controller控制器的处理方法上),支持通配符*

            Controller加的时候,使用跟这个注解的方法的请求地址是相对于这个类上的@RequestMapping而言的,当controller没有此注解时,方法上的@requestMapping是绝对路径


    2、属性:value、params、method、headers

         1、params指定参数:@RequestMapping(value = "testParams", params = { "param1=value1", "param2", "!param3" })三个参数,第一个值必须等于value1,第二个必须存在、值不管,第三个必须不存在,这样才能访问该方法

        2、method,限制能够访问的方法类型,method = { RequestMethod.GET, RequestMethod.DELETE }

        3、headers通过请求头缩小@RequestMapping的映射范围 headers = { "host=localhost", "Accept" }

      只有当请求头中包含Accept信息,host为localhost时


方法支持的参数和返回类型:

方法参数:

    httpServlet:httpServletRequest、httpServletResponse和HttpSession,spring调用方法时自动赋值,参数中写、直接用;httpSession如果还没有建立起来会用问题

    webRequest:该对象可以访问到存放在HttpServletRequest和HttpSession中的属性值


InputStream、outputStream、Reader和Writer

    InputStream和Reader是针对HttpServletRequest而言的,可以从里面取数据;OutputStream和Writer是针对HttpServletResponse而言的,可以往里面写数据。

  使用@PathVariable、@RequestParam、@CookieValue和@RequestHeader、@ModelAttribute标记的参数

      java.util.Map、Spring封装的Model和ModelMap:封装模型数据

  实体类

       Spring封装的multipartFile接收上传文件

   封装的errors和bindingResult:紧接在需要验证的实体对象参数后,包含了实体对象的验证结果


返回类型:

  包含模型和视图的modelAndView对象

  模型对象:spring封装好的model和modelmap、map,没有视图要返回时视图名由RequestToViewNameTranslator决定

     View对象:在渲染视图的过程中可以给方法定义模型参数、方法中添加值

     String字符串:代表视图名称,需要在渲染视图过程中需要模型的话在方法中添加值

    Void:直接将返回写过写到httpServletResponse中,没有写的话


@PathVariable标记参数,可以是变量{variable1}

    @RequestMapping("/test/{variable1}")

    public class MyController {

      @RequestMapping("/showView/{variable2}")

      public ModelAndView showView(@PathVariable String variable1,@PathVariable("variable2") int variable2){}

    }

    {variable1}在debug模式下默认去uri模板中找参数名相同的变量

    {variable2}明确使用URI模板的variable2变量

 

@RequestParam绑定httpservletRequest参数到控制器方法参数

@RequestParam(value = "per_page", required = false,defaultValue = "10")


@CookieValue绑定cookie值到controller方法参数

    public String testCookieValue(@CookieValue("hello") String cookieValue,@CookieValue String hello)


@requestHeader绑定httpServletRequest头信息到controller方法参数,同上,但是大小写不敏感

 

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/80439722