SpringMVC(三):请求方式与接收参数

SpringMVC请求方式与接收参数

一、请求方式

1、两种请求方式

@RequestMapping:请求映射,属性:method,表示请求方式,他的值是RequestMethod枚举值。例如:
表示get请求方式,RequestMethod.GET
post方式,RequestMethod.POST

2、post产生的乱码问题

post方式默认接收游览器请求时候不是utf-8,因此需要加入过滤器,在SpringMVC的主配置文件中配置过滤器:

 <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!--
              设置项目中使用的字符串编码
        -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <!--强制请求对象使用encoding编码的值-->
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <!--强制设置应答对象(HttpServletResponse)使用encoding编码的值-->
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

二、接收参数

1 、逐个接收参数

这种方式需要的是属性名和形参名必须一样,同名的请求参数赋值给同名的形参。

2 、请求参数中参数名和参数不一样的情况

使用@RequestParam注解,在处理的方法的形参定义的前面,value表示请求参数的名称,还有一个属性是required,这是是一个boolean,默认是true,表示请求中必须包含这个参数。

@RequestMapping(value = "/receiveparam.do")
    public ModelAndView receiveParam(@RequestParam(value = "rname") String name,
                                     @RequestParam(value = "rage") int age){
        ModelAndView mv=new ModelAndView();
        mv.addObject("myname",name);
        mv.addObject("myage",age);
        mv.setViewName("show");
        return mv;
    }

3 、使用java对象传值

当处理器的方法形参是对象,并且这个对象中的属性名和请求参数中的参数名是一样的,框架会创建形参的java对象,给属性赋值,使用set()方法。

猜你喜欢

转载自blog.csdn.net/qq_41984117/article/details/109251340