springmvc接收请求参数的方式,springmvc 获取post请求参数
00-1010I,前言二,初步理解三,servletAPI四,方法参数五,@RequestParam六,实体类七,总结
00-1010大家好。我是白菜,高二。
当你在学习springMVC框架的时候,你一定已经学会了使用这个框架来获取请求的参数。那么,朋友们,有多少种方法可以得到请求的参数呢?使用它的最好方法是什么?这些方法什么时候用?那么在这篇文章中,我将带你看看这些问题的答案。
废话不多说,满满的干货,快来看看吧~
目录
那么什么是请求参数呢?
可以直接在请求地址中给于请求参数的值
还可以以表单提交的方式,例如:
表单用户名:输入类型= text name= username /br/password 3360输入类型= password name= password /br/Hobbies :输入类型= checkbox name= hobby value= c /c输入类型= checkbox name= Java /Java输入类型= checkbox name= hobby value= c /CBR/button type= submit 提交/按钮/表单表单就是这样:
一、前言
HttpServletRequest是我们在javaweb中学到的,也可以用在我们的springMVC框架中,使用HttpServletRequest作为控制器方法的参数。此时,HttpServletRequest类型的参数表示封装当前请求的请求消息的对象。
具体代码如下:
@RequestMapping(/one )公共字符串testParam(HttpServletRequest请求){ String username=request . getparameter( username );string password=request . getparameter( password );string[]hobbies=request . getparametervalues( hobby );返回“成功”;}当我们在表单中设置正确的请求地址并提交表单时,就会调用这个方法,然后根据表单的name属性的值得到相应的参数值。相信大家可以看到,getParameter是单个属性的值,getParameterValues是多个属性的值。
二、初步认识
接下来介绍第二种方法。
在控制器方法的参数位置设置与请求参数同名的参数。当浏览器发送请求并匹配请求映射时,请求参数将被赋给DispatcherServlet中相应的参数。
具体代码如下:
@ request mapping(/two )public String test two(String username,String password,String hobby){ system . out . println( username : username ,password: password ,hobby : hobby);返回“成功”;}当然也可以这样写:
@RequestMapping(/two) publi
c String testTwo(String username, String password, String[] hobby) { System.out.println("username:" + username + ",password:" + password + ",hobby:" + hobby); return "success"; }这两种都可以,第一种会把多个参数的值转换成一个数组;第二组会把参数值放进数组中,需要自己遍历得到结果。
五、@RequestParam
推荐使用这种方式,非常好用。
@RequestParam是将请求参数和控制器方法的形参创建映射关系
@RequestMapping("/three") public String testThree(@RequestParam(value = "username", required = false, defaultValue = "hello") String username, @RequestParam(value = "password") String password, @RequestParam(value = "hobby") String hobby) { System.out.println("username:" + username + ",password:" + password + ",hobby:" + hobby); return "success"; }
@RequestParam注解一共有三个属性:
value:指定为形参赋值的请求参数的参数名required:设置是否必须传输此请求参数,默认值为true
若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:RequiredString parameter ‘xxx’ is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null
defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值运行结果完全正确:
六、实体类
最后一种方式,可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值
下面看代码:
public class User { private String username; private String password;private String[] hobby;}
这个user实体类的getter和setter以及toString就不列出来了
@RequestMapping("/four") public String testFour(User user) { System.out.println(user); return "success"; }
测试一下:
提交后运行结果也是完全正确的:
七、总结
乐莫乐兮新相知,很高兴各位小伙伴可以坚持看完这篇文章。以上四种方式获取请求参数就介绍完了,大家可以根据自己的需要选择合适的方式哦~
到此这篇关于springMVC获取请求参数的几种方式的文章就介绍到这了,更多相关springMVC获取请求参数内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。