首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot获取页面参数方式总结

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获取前端页面参数的方式大致就上面这几种,可以根据自己的实际情况来选择其中的任意一种方式,个人一般推荐前三种方式,当然具体选哪种还是因人而异。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126A17FRV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券