MVC接收参数

MVC收参

1.使用原生的方式接收

代码如下:

@Controller
@RequestMapping("/servletAPI")
public class servletAPI {
​
    @RequestMapping("/requersTest")
    public String requersTest(HttpServletRequest request){
        //可以使用request作用域
        request.setAttribute("name","大大大怪兽");
        System.out.println("这个是request...");
        return "index";
    }
​
​
    @RequestMapping("/responseTest")
    public String responseTest(HttpServletResponse response){
        //可以responses作用域
        System.out.println(response);
        return "index";
    }
​
    @RequestMapping("/sessionTest")
    public String sessionTest(HttpSession session){
        //可以session作用域
        session.setAttribute("sname","昊天锤");
        System.out.println("session作用域...");
        return "redirect:/index.jsp";
    }

注意:isELIgnored="false"

<%@ page isELIgnored="true|false"%>

  


如果设定为真,那么JSP中的表达式被当成字符串处理

jsp获取参数如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>欢迎</title>
</head>
<body>
11111
${requestScope.name}
${name}
${sessionScope.sname}
${sname}
<hr>
hello controller
</body>
</html>

 

PS:SpringMVC没有提供servletContest对象入参形式的获取方式,我们必须手动通过session对象的函数来获取

即:

session.getServletContext();

2.使用SpringMVC的方式接收

注意:SpringMVC是通过在方法的入参中声明接收的请求参数。

  1. 基本数据类型和String类型

    1.     * SpringMVC接收请求参数
         1.接收基本类型和String类型的参数
            参数类型:个人需要的类型
            参数名:需要和请求参数的key对应,前端传过来的参数
         当接收请求参数的变量名 请求参数的key不一致的时候,可以使用一个注解
         @RequestParam("name")  手动指定对应关系

      PS:

      • 如果请求方法的参数指定了@RequestParam注解绑定请求参数的名字,默认情况 请求时必须传递对应的请求参数

      • @RequestParam注解属性的含义:

        value 属性: 绑定请求参数的key

        required属性: 指定当前接收的请求参数是否必须传递, 默认为true(必须)

        defaultValue属性: 指定默认值, 当没有传递对应的请求参数时,取此值

       

  2. 自定义对象类型的接收

    1. 请求参数的key与方法参数类型中的属性名对应

  3. 日期类型的接收

  4. 接收list集合类型

    1. list集合元素是String类型

    2. list集合元素是自定义对象类型

      通过下标的形式给集合指定的元素对象属性封装值

  5. 接收set集合类型

    1. 参数是String类型

    2. 参数是自定义类型

  6. 接收map集合类型

    1. 参数是String类型

       

    2.  

 

原文地址:https://www.cnblogs.com/ljy9/p/14001822.html