zoukankan      html  css  js  c++  java
  • springMVC之@Request

    这段时间有了新的动力,所以开始了我的博客之旅。先从参数绑定开始我的随笔吧。

    @RequestMapping

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。(http路径上就是这样,value中的路径)

    RequestMapping注解有六个属性:

    1、 value, method属性;

    value:     指定请求的实际地址,指定的地址可以是URI Template 模式;

    value的uri值为以下三类:

    A) 可以指定为普通的具体值;(value="/test")

    B)  可以指定为含有某变量的一类值(value="/tmp/{tmp}")

    C) 可以指定为含正则表达式的一类值(/web/{UserId:[a-z]})

    method:  指定请求的method类型, GET、POST、PUT、DELETE等;

    (method=RequestMethod.GETRequestMethod.POST)

    2、 consumes,produces;

    consumes: 指定处理请求的提交内容类型(Content-Type),

    例如onsumes="application/json"、"text/html";方法仅处理request Content-Type为“application/json”类型的请求。

    produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; produces="application/json"

    3、 params,headers;

    params: 指定request中必须包含某些参数值是,才让该方法处理。例如:(params="myParam=start")

    headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。(headers="www.baidu.com/")

    在SpringMVC后台控制层获取参数的方式主要有两种:

    一、request.getParameter("name");

    二、是用注解@RequestParam直接获取;

    这次主要说明注解 :

    1、通过@RequestParam配置 :value="XX"

    // 下面的对传入参数指定为test,如果传入参数不传test参数名,会报错  

    @RequestParam(value="test") String test  

    错误信息: 
    HTTP Status 400 - Required String parameter 'test' is not present 

    2、通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 

    // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有

    @RequestParam(value="test",required=false) String test  

    3、如果用@RequestParam注解的参数类型是int,同时required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int。 

    解决方法: 
        “Consider declaring it as object wrapper for the corresponding primitive type.”。建议使用包装类型代替基本类型,如使用“Integer”代替“int”。

  • 相关阅读:
    3185 队列练习 1 3186 队列练习 2
    1063 合并果子
    堆排序
    奇怪的电梯
    3411 洪水
    2010 求后序遍历
    1729 单词查找树
    3137 栈练习1
    2821 天使之城
    括弧匹配检验(check.cpp)
  • 原文地址:https://www.cnblogs.com/antime/p/7600748.html
Copyright © 2011-2022 走看看