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