测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)

控制器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.awaimai.web;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.HashMap;
import java.util.Map;
 
@RestController
public class kzq
{
    /**
     * 使用@RequestParam获取参数
     * 这里RequestParam注解会将括号里面的前端参数名称转化为后面的参数名称
     * @param name String 姓名,接收前端username参数
     * @param age int 年龄,接收前端user_age参数
     * @param score double 分数,接收前端score参数
     * @return 响应json字符
     */
    @RequestMapping("/param/requestparam")
    @ResponseBody
    public Map<String, Object> requestParam(@RequestParam("username") String name, @RequestParam("user_age") int age, @RequestParam("score") double score)
    {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", name);
        paramMap.put("age", age);
        paramMap.put("score", score);
        return paramMap;
    }
 
 
 
 
 
 
 
    /**
     * 无注解获取参数时,参数名称和HTTP请求参数必须一致
     * @param name String 姓名
     * @param age int 年龄
     * @param score double 分数
     * @return 响应json字符-@ResponseBody注解将map转为json
     */
    @RequestMapping("/param/noannotation")
    @ResponseBody
    public Map<String, Object> noAnnotation(String name, int age, double score) {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", name);
        paramMap.put("age", age);
        paramMap.put("score", score);
        return paramMap;
    }
 
<br><br>
    @RequestMapping("/123")
    public String testweb01()
    {
        return "abc";
    }
<br><br><br>
    @RequestMapping("/1234")
    public String testweb02()
    {
        return "123abc";
    }
 
}

  

URL:  http://localhost:8080/param/requestparam?username=lisi&user_age=12&score=45.6

 

web访问:

 

 

无注解情况下,HTTP参数与控制器参数名称必须一致。

 

若HTTP参数与控制器参数不一致时,我们就需要将前端参数与后端参数对应起来,这里我们使用@RequestParam来确定前后端参数名称的映射关系。

 

方法中,我们接收前端的username,user_age和score,然后使用@RequestParam注解将其转化映射为name,age和age。

 

 

 

如果将URL中username后面值置空,页面可以正常跳转,测试URL

http://localhost:8080/param/requestparam?username=&user_age=12&score=45.6

 

 

 

 

 

 

若我们将user_age 或 score值置空,则页面会报错

 

 

 

 

 

 

 

与无注解时错误相同,这里不做解释了。

如果我们删除掉URL栏里面username参数项,URL为 http://localhost:8080/param/requestparam?user_age=12&score=45.6

页面无法正常跳转,报错如下

 

posted @   小白龙白龙马  阅读(94)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示