SpringMVC 接收请求参数


在开始之前,应该先新建一个maven工程,注入SpringMVC以及Servlet依赖,再使用注解配置一下Controller可以点击这些字查看详细配置过程!

一、接收请求参数

1、提交的域名称和处理方法的参数名一致

首先在前台的index.jsp写一个表单,然后提交一个username

<html>
<head>
    <title>$Title$</title>
</head>
<body>

<form method="post" action="/test/">
    <input name="username">
    <br>
    <input type="submit">
</form>

</body>
</html>

新建一个Controller,处理前台来的数据,返回到hello.jsp页面(这是个空页面):

package com.wzq.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ControllerTest2 {
    
    

    @RequestMapping("/test")
    public String Test1(String username){
    
    
        System.out.println(username);
        return "hello";
    }
}

运行Tomcat,在index.jsp页面的表单里输入:wzq
在这里插入图片描述
点击提交,查看后台:
在这里插入图片描述
通过上面的案例,知道了一点:就是前台inputname属性和Controller参数名称一样的时候,可以直接读取到

2、提交的域名称和处理方法的参数名不一致

如果不一致怎么呢?会出现什么情况?把上面的Controller修改一下:

@RequestMapping("/test")
public String Test1(String name){
    
    
    System.out.println(name);
    return "hello";
}

只把参数名称修改了一下,和前台的不一样了!运行,打印一下:
在这里插入图片描述
可以看到,只输出了null,证明没有匹配到,遇到这种情况,只需要在Controller的方法的参数里加个注解@RequestParam("对应前台的name属性")就好了,修改一下:

@RequestMapping("/test")
public String Test1(@RequestParam("username") String name){
    
    
    System.out.println(name);
    return "hello";
}

输入数据,运行:
在这里插入图片描述

3、提交的是一个对象

这个要求提交的表单域和对象的属性名称一致,参数使用对象即可。如果使用对象,但是参数名称不一致,则匹配不到,对应名称不一致的字段都为null

新建一个Userpojo类:

扫描二维码关注公众号,回复: 13123188 查看本文章
package com.wzq.pojo;

public class User {
    
    

    private int id;
    private String name;
    private int age;
	
	/*
		get/set
		toString
		...
		省略
	*/
}

修改一个前端的表单:

<form method="post" action="/test/">
    id:<input name="id">
    <br>
    name:<input name="name">
    <br>
    age:<input name="age">
    <br>
    <input type="submit">
</form>

对应的后台:

@RequestMapping("/test")
public String Test2(User user){
    
    
    System.out.println(user);
    return "hello";
}

运行:
在这里插入图片描述
点击提交:
在这里插入图片描述
OK了

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/113734842