测试开发进阶——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型参数,则必须非空。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端