测试开发进阶——spring boot——MVC——get访问——无注解下获取参数

控制器页面:

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
package com.awaimai.web;
 
import org.springframework.web.bind.annotation.RequestMapping;
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
{
    /**
     * 无注解获取参数时,参数名称和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;
    }
 
 
    @RequestMapping("/123")
    public String testweb01()
    {
        return "abc";
    }
 
    @RequestMapping("/1234")
    public String testweb02()
    {
        return "123abc";
    }
 
}

  

无注解下获取参数,需要控制器层参数与HTTP请求栏参数名称一致,这样后台就可以获取到请求栏的参数。

 

web访问如下:

 

URL:  http://localhost:8080/param/noannotation?name=zhangsan&age=14&score=89.1

 

 

 

====================================================================================================

 

PS:

 

 

方法中,我们接收三个参数,分别为name,age和score

 

 

启动springboot后,在浏览器中请求URL:http://localhost:8080/param/noannotation?name=zhangsan&age=14&score=89.1

前端页面会自动得到我们输入的参数的json形式。

 

 

 

 

 

 

如果我们的请求URL中name不给参数值 http://localhost:8080/param/noannotation?name=&age=12&score=89.1

请求可以正常跳转。

 

 

 

 

 

如果我们将int 或 long 参数为空,给URL http://localhost:8080/param/noannotation?name=lisi&age=12&score=

请求会报错。

 

 

 

无法将String型参数转化为需要的double型。

 

这里可以看出,如果我们不给参数赋值,那么spring会将空着的参数默认按照String型空字符串处理。

 

所以,如果是String型的参数,为空时不报错的;若是非String型参数,则必须非空。

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