Spring MVC各种提交形式以及参数接收(form表单提交以及Json提交)

简介: form表单参数接收的三种方式

form表单参数接收的三种方式:

1.HttpServletRequest

   @RequestMapping(value = "/getParmByReq.do", method = RequestMethod.POST)

@RequestMapping(value = "/getParmByReq.do", method = RequestMethod.POST)
    @ResponseBody
    public String getParmByReq(HttpServletRequest request) {
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));
        System.out.println("接收到的参数,name=" + name + ";age=" + age);
        return "接收到的参数,name=" + name + ";age=" + age;
    }

用curl 测试结果: (-d 表示post请求)

curl   -d "name=admin&age=34"   http://localhost:8080/ssm-req/form/getParmByReq.do

133b95d52499942d7c8479f3424417fd_2018113022143855.png

2. 一个个参数接收,单个参数按照名称接收:

@RequestMapping(value = "/requestParam.do", method = RequestMethod.POST)
    @ResponseBody
    public String getBarBySimplePathWithRequestParam(
            @RequestParam(value = "name") String name,
            @RequestParam(value = "age") Integer age
    ) {
        System.out.println("接收到的参数,name=" + name + ";age=" + age);
        return "接收到的参数,name=" + name + ";age=" + age;
    }

用curl 测试结果:

curl   -d "name=ceshi&age=22"   http://localhost:8080/ssm-req/form/requestParam.do

adbcbd84aa262719c5e55e2bdd8472d3_20181130221905702.png

3. 自定义实体类接收,使用注解:@ModelAttribute

@RequestMapping(value = "modelAttribute.do", method = RequestMethod.POST)
    @ResponseBody
    public String getModelAttribute(@ModelAttribute() User user) {
        System.out.println("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
        return "接收到的参数,name=" + user.getName() + ";age=" + user.getAge();
    }

用curl 测试结果:

curl   -d "name=jaywei&age=33"   http://localhost:8080/ssm-req/form/modelAttribute.do

15490d948385017ce19490c0dbf60ff9_20181130222209300.png

4. 不用流的形式接收

@RequestMapping(value = "/getNotStream.do")
    @ResponseBody
    public String getNotStream(String order) {
        JSONObject jsonObject = JSONObject.parseObject(order);
        System.out.println("接收到的参数,name=" + jsonObject.getString("name") + ";age=" + jsonObject.getString("age"));
        return "接收到的参数,name=" + jsonObject.getString("name") + ";age=" + jsonObject.getString("age");
    }

用curl 测试结果

curl   -d "order={'name':'张三','age':12}"   http://localhost:8080/ssm-req/form//getNotStream.do

fa8cb045fe86e568b4f5e48ea5e4ebde_20181130223718787.png

小结:

推荐使用:@ModelAttribute 接收参数的方式。

PS: 解决中文乱码问题,在web.xml文件中加入字符过滤器:

<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


JSON提交参数接收

使用@RequestBody注解,该注解是将参数放在请求体中

@RequestMapping(value = "getJson2.do",produces = "application/json")
    public String getJson2(@RequestBody String userStr) {
        User user = JSON.parseObject(userStr, User.class);
        System.out.println("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
        return JSON.toJSONString("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
    }

用curl测试结果

curl   -H "Content-Type:application/json" -X POST -d "{'name':'sange','age':12}"   http://localhost:8080/ssm-req/json/getJson2.do

8639bac2df980cc99cd516b1ecf46a9b_20181130232840134.png

源码地址:

https://github.com/XWxiaowei/JavaWeb/tree/master/ssm-request-demo


相关文章
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult&lt;T&gt;`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码&quot;0&quot;和消息&quot;操作成功!&quot;,有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
1029 0
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 &quot;&quot;,Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
710 0
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
1816 0
|
11月前
|
JSON Java 数据格式
Spring Boot返回Json数据及数据封装
在Spring Boot中,接口间及前后端的数据传输通常使用JSON格式。通过@RestController注解,可轻松实现Controller返回JSON数据。该注解是Spring Boot新增的组合注解,结合了@Controller和@ResponseBody的功能,默认将返回值转换为JSON格式。Spring Boot底层默认采用Jackson作为JSON解析框架,并通过spring-boot-starter-json依赖集成了相关库,包括jackson-databind、jackson-datatype-jdk8等常用模块,简化了开发者对依赖的手动管理。
871 3
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——定义返回的统一 json 结构
本课主要讲解Spring Boot中的全局异常处理方法。在项目开发中,各层操作难免会遇到各种异常,若逐一处理将导致代码耦合度高、维护困难。因此,需将异常处理从业务逻辑中分离,实现统一管理与友好反馈。本文通过定义一个简化的JsonResult类(含状态码code和消息msg),结合全局异常拦截器,展示如何封装并返回标准化的JSON响应,从而提升代码质量和用户体验。
376 0
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
385 2
|
JSON 前端开发 Java
Spring MVC返回JSON数据
综上所述,Spring MVC提供了灵活、强大的方式来支持返回JSON数据,从直接使用 `@ResponseBody`及 `@RestController`注解,到通过配置消息转换器和异常处理器,开发人员可以根据具体需求选择合适的实现方式。
614 4
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
637 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
JSON Java API
解码Spring Boot与JSON的完美融合:提升你的Web开发效率,实战技巧大公开!
【8月更文挑战第29天】Spring Boot作为Java开发的轻量级框架,通过`jackson`库提供了强大的JSON处理功能,简化了Web服务和数据交互的实现。本文通过代码示例介绍如何在Spring Boot中进行JSON序列化和反序列化操作,并展示了处理复杂JSON数据及创建RESTful API的方法,帮助开发者提高效率和应用性能。
921 0
|
JSON JavaScript 数据格式
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
233 0

热门文章

最新文章