文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 21:30

关注

这篇文章主要讲解了“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注解一共有三个属性:

若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:Required
String parameter &lsquo;xxx&rsquo; is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null

运行结果完全正确:

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获取请求参数的方式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯