![e497a6f64b97b288da2df694d1582be7.png](https://i-blog.csdnimg.cn/blog_migrate/cee0b59ced2e781272f0e79ba9d6d8bc.jpeg)
在没学习SpringMVC之前,用servlet的时候,有一件事是让人非常苦恼的,那就是页面参数的获取,如果参数有几个还好,但是如果参数多达十几个,就会让人有点小抓狂,但是如果有多个servlet需要获取十几个的话?是不是爽翻了?
下面介绍几种SpringMVC获取页面参数的方法,重点会标♥
说下几种乱码解决方式,参考下面链接即可
SpringMVC Controller 接收页面传递的中文参数出现乱码blog.csdn.net![761a9441ba3ef938a0a0495cd9589063.png](https://i-blog.csdnimg.cn/blog_migrate/649f4b294107335928770316598b99d6.png)
400错误-数据类型转换处理错误
产生的原因:页面提交参数的类型和后台参数接收的类型不对应
前端传值为空,但后台接收是int类型,就会报找个错 -解决(前端表单校验,防止空值)
![e08265fe91f07cb607ec9bf95604a5e8.png](https://i-blog.csdnimg.cn/blog_migrate/6e2de43eeedaf18c22852b2b955be99c.png)
第一种 使用内置对象作为参数进行传递来获取参数
使用springmvc接收参数时 可以使用内置对象HttpServletRequest来获取对应的值。
和原始的servlet差不多,不方便
![6a4fb7578a1808dd4aaaaf40de128ccd.png](https://i-blog.csdnimg.cn/blog_migrate/cc401598f2ec3191be0903d0cbb6a785.png)
♥第二种 使用参数进行接收页面参数
使用这种方式进行数据接受的时候,
需要保证形参的名称和前台form表单name的值必须要一致
![2dd5bf13c04cbb811111ea1d2f0cd965.png](https://i-blog.csdnimg.cn/blog_migrate/e102303874db6319998becdd92670375.png)
♥第三种 通过对象传递值的接收
参数可以直接使用对象进行接收
注意点:使用对象接收参数的时候需要注意
将需要接收的数据封装为对象进行接收
表单中的name属性必须和接收参数对象中的实体属性名保持一致
日期需要特别设置
![3c1dfc7d106d2cdbd0b66274c61b253e.png](https://i-blog.csdnimg.cn/blog_migrate/ac677d468faf7bb29fb4b0300477f955.png)
![7b8baba465cb8baa268987f40a59804f.png](https://i-blog.csdnimg.cn/blog_migrate/49a75f576bb34a5b5a5b0ba3f305f2df.png)
♥第四种 可以接收字符串或者字符串的数组
如果接收的参数是复选框 那么 我们可以根据需求选择接受数组还是字符串,
两者都是可以的。
![5f51490aba99cb1f430d877c82fc5247.png](https://i-blog.csdnimg.cn/blog_migrate/ea7fe260184b336039f1d49a8e6ed6db.png)
♥第五种 日期格式的接收
sql Date不含时分秒。
接收的数据如果含有时分秒 需要使用java.util.Date
并且使用@DateTimeFormat 指定时间的格式.
一定要注意传入数据的格式 一定要与转换的格式严格匹配(包括空格的数量)否则报400错误。
sql包的Date 只是含有年月日
util 中的Date 不仅含有年月日还有时分秒
@DateTimeFormat :接受日期格式的数据 --在使用Util包下才行
@DateTimeFormat(pattern = "指定日期的格式")
![23321ec122cbd425b05c3af3a881d4ef.png](https://i-blog.csdnimg.cn/blog_migrate/46795df6fbfa6d7e0a0f30d790dc5799.png)
♥Restful风格参数的传递
Restful风格
是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景.
使用这种设计风格需要使用@PathVariable 注解获取url中的参数
-将数据变得更加安全,不容易盲猜
![0521fb81f56c1bda01b5595adec3b66b.png](https://i-blog.csdnimg.cn/blog_migrate/376553317791758d4de6090e8c32b683.png)
页面代码
![7958382275aecd2b6e059dfdd346238f.png](https://i-blog.csdnimg.cn/blog_migrate/419f4696a941491c44684017efdf3985.png)
![6ba66dd46987868e685b046bf648253f.png](https://i-blog.csdnimg.cn/blog_migrate/b65dd9f8c8bc04a03fe182ae7467beb9.png)
![3eb8cb15e15e04b404de9383fecd1247.png](https://i-blog.csdnimg.cn/blog_migrate/db16b47582e00b7f041244075bc94858.png)
♥分页查询数据问题
![7ebbb1ca5b7243c7572a34d57c5a3e37.png](https://i-blog.csdnimg.cn/blog_migrate/f29ed059bf599e0d586341abcfb2dd92.jpeg)
♥指定必须传参
![57e662b46786f1737bd03a8151631dfe.png](https://i-blog.csdnimg.cn/blog_migrate/0214ca2d02b8c5f98760129c5a551684.jpeg)