温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springMVC获取请求参数的方式有哪些

发布时间:2022-04-06 13:39:23 来源:亿速云 阅读:246 作者:iii 栏目:开发技术

这篇文章主要讲解了“springMVC获取请求参数的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springMVC获取请求参数的方式有哪些”吧!

初步认识

可以直接在请求地址中给于请求参数的值

springMVC获取请求参数的方式有哪些

还可以以表单提交的方式,例如:

<form>     用户名:<input type="text" name="username"/><br/>     密码:<input type="password" name="password"/><br/>     爱好:<input type="checkbox" name="hobby" value="C++"/>C++          <input type="checkbox" name="hobby" value="Java"/>Java          <input type="checkbox" name="hobby" value="C"/>C<br/>     <button type="submit">提交</button> </form>

表单就是这样:

springMVC获取请求参数的方式有哪些

servletAPI

HttpServletRequest是我们在javaweb学习中学到的,它也可以用在我们springMVC框架中,将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象

具体代码如下:

    @RequestMapping("/one")     public String testParam(HttpServletRequest request) {         String username = request.getParameter("username");         String password = request.getParameter("password");         String[] hobbies = request.getParameterValues("hobby");         return "success";     }

当我们在表单中设置正确的请求地址后,提交表单时,就会调用该方法,然后根据表单的name属性值获取相应的参数值。相信大家可以看到,getParameter是获取单个属性的值,getParameterValues是获取多个属性的值。

方法参数

接下来介绍第二种方法。

在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参

具体代码如下:

    @RequestMapping("/two")     public String testTwo(String username,      	String password,      	String hobby) {         System.out.println("username:" + username                              + ",password:" + password                             + ",hobby:" + hobby);         return "success";     }

当然,也可以写成这样:

    @RequestMapping("/two")     public 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:Required
String parameter &lsquo;xxx&rsquo; is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null

  • defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值

运行结果完全正确:

springMVC获取请求参数的方式有哪些

实体类

最后一种方式,可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值

下面看代码:

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获取请求参数的方式有哪些

感谢各位的阅读,以上就是“springMVC获取请求参数的方式有哪些”的内容了,经过本文的学习后,相信大家对springMVC获取请求参数的方式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI