Spring Boot获取前端页面参数的几种方式总结

Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库,前段时间正好用到,但是忘得差不多了,获得的方式有很多种,这种东西不写下来一段时间不用就忘得差不多了,感觉记性越来越差了呢,这里稍微总结一下,大致分为以下几种:
  
  1.指定前端url请求参数名称与方法名一致,见下图,这种方式简单来说就是url请求格式中的参数需要与方法的参数名称对应上,举个例子,这么一个url请求http://localhost:8080/0919/test1?name=xxx&pwd=yyy,在指定的控制器类上加上Controller注解,同时指定RequestMapping注解即可,当请求路径参数与方法参数匹配上时会自动注入
  这里写图片描述

启动主程序,访问浏览器出现下图,表明注入参数成功,这种方式一般是get请求
  这里写图片描述

2.第二种方式是通过HttpServletRequest来获取前端页面参数,代码见下图 ,简单来说就是通过调用request的getParameter方法来获取参数,比如访问路径类似这样http://localhost:8080/0919/test2?firstName=zhang&lastName=san
  这里写图片描述
  
  启动主程序,访问浏览器出现下图,表明注入参数成功,这种方式也可以获取表单参数,一般get和post请求都可以

这里写图片描述

3.第三种方式是通过创建一个JavaBean对象来封装表单参数或者是请求url路径中的参数,具体代码见下图
  这里写图片描述

对应的JavaBean对象是下面这个
  这里写图片描述
  
  简单来说就是将表单参数作为一个JavaBean类的属性,通过设置方法参数为一个JavaBean对象,之后在方法中通过调用对象的get方法来获取表单传过来的参数,比如访问路径是这个http://localhost:8080/0919/test3?firstName=zhang&lastName=san 启动主程序,在浏览器访问见下图,表明注入参数成功,这种方式如果请求的表单参数很多可以考虑使用这种方式
  这里写图片描述

4.第四种方式是通过PathVariable注解来绑定请求路径的参数,参考代码见下
  这里写图片描述
  
  这种情况简单来说就是url中采用动态绑定的形式表示,之后在方法中指定的参数通过PathVariable来将请求的url中的参数绑定到方法参数,这里在不指定PathVariable注解的具体值时按照请求路径中的动态变量顺序与注解顺序一致即可注入 ,如果想指定注入,那么指定PathVariable注解的值与动态变量的名一致即可特定注入。比如请求路径是这个http://localhost:8080/0919/test4/111/222

启动主程序,在浏览器访问,出现下图表明注入参数成功
  
  这里写图片描述

5.第五种方式是通过RequestParam注解来获取,具体代码见下
  这里写图片描述

这种方式是通过url路径的形式将请求路径上的参数绑定到方法的参数上,简单来说就是实参值赋给相应的形参,与上面那种方式的区别是前者是动态url模板注入,这里是个普通的url请求注入·,比如访问路径是这个http://localhost:8080/0919/test5?aaa=111&bbb=4444

启动主程序,访问该请求,浏览器出现下面这个表明注入参数成功,这里可以通过指定RequestParam的value值来指定url请求路径参数指定注入到哪个具体方法参数,不过一般两者名字一致比较方便
  这里写图片描述

6.第六种方式是通过ModelAttribute方式来注入参数,具体代码见下
  这里写图片描述

这种方式一般是通过在页面展示,所以这里创建两个页面做测试test2.jsp和test3.jsp进行测试
  这里写图片描述

这里写图片描述

简单来说就是通过ModelAttribute注解将请求参数封装到指定的JavaBean对象,同时通过value值将这个接受了表单参数的对象赋给value,这里就是将s赋给了一个变量名为kkk的存在,之后就可以在jsp页面通过这个变量名使用el表达式来获取从表单传过来的参数,这里测试路径是http://localhost:8080/0919/kkk,访问在浏览器进行测试,见下图
   这里写图片描述

点击提交,出现下图,表明表单参数成功被后台接受并在前台页面输出,这种方式一般是需要在前台页面输出的时候使用
   这里写图片描述

总的来说Spring Boot获取前端页面参数的方式大致就上面这几种,可以根据自己的实际情况来选择其中的任意一种方式,个人一般推荐前三种方式,当然具体选哪种还是因人而异。这里简单写了一点简单demo做下测试记录防止长时间不用又忘了,毕竟博客的作用就是这样嘛,同时供有需要的同僚们拿过来参考,那么这篇就这样了到此结束。。。。。睡觉(`・ω・´)

Spring Boot 中,前端传递给后台的布尔值通常是作为字符串(如 "true" 或 "false")进行编码发送的,这通常是因为浏览器默认不会直接发送布尔类型的 JSON 数据。当数据从前端通过 HTTP 请求到达 Spring Boot 后台时,`HttpServletRequest.getParameter()` 或 `RequestParam` 类型的参数会将字符串转换成对应的 Java 值。 如果你在后端使用 `boolean` 类型的变量接收并期望获取原始的布尔值,可能出现的问题在于字符串 "false" 被解析为 `false` 的反义,即 `true`。这是因为服务器在接受到请求参数时会将其视为字符串,并尝试转换为相应的基本类型。解决这个问题有几种方法: 1. **前端处理**:前端可以先做类型转换,在发送前将 "true" 明确地转为 `true` 发送。 ```javascript let isTrue = true; axios.post('/api', { isTrue: isTrue.toString() }); ``` 2. **后端配置**:Spring Boot 提供了对请求参数自动装箱的功能,可以在配置文件 `application.properties` 或 `application.yml` 中设置 `spring.jsonータ=true` 来启用它,这将允许像 `true` 这样的字符串直接转换为相应的布尔值。 3. **明确类型**:后端在接收参数时指定类型,比如使用 `@RequestParam(value = "isTrue", required = false, defaultValue = "false", converter = BooleanConverter.class)` 注解。 4. **JSON序列化/反序列化**:如果是在序列化和反序列化 JSON 时出现问题,确认下使用的 JSON 库是否正确处理了布尔值。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦岚如雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值