前言:在各类网站论坛上,没有找到与工作比较贴切的技能,所以特此写一些对刚步入工作或者工作中没有重视的技能与问题,各位大牛请及时关闭文章.

ps1:文中所有标点都是英文的,看官请不要在意.为了便于平时敲代码,所以中文输入法也默认了英文标点(防止各类因为标点引起的低级错误).纯属个人原创见解,若不正确,请各位批评指正.

ps2:读懂本文,你可能需要具备对JSON格式对象的理解,以及SpringMVC中Controller的作用

这边我统一以SpringMVC框架为例进行讲解参数封装方法,我只介绍最常用的几种请求方式(因为其他请求方式不经常使用,所以不作为本文重点).如果文中介绍到的内容有不明白的,敬请留言评论.

java

大多数情况,我们都是通过ajax方式进行提交复杂对象进行插入或更新操作,下面我们举个例子接着上一篇继续介绍封装复杂参数的其他方式我们的需求是 : 在一个请求中将某一个学生信息,该学生的语数外三门成绩以及该学生的老师信息同时传入后台.

学生类如下:(学生包含多个成绩)

学生类

成绩类如下:

成绩类

教师类如下:

教师类

接受请求参数的Controller方法如下:

Controller方法

ajax方式封装复杂对象(一)

在测试页面中直接编写一个ajax请求,将请求参数封装成我们需要的格式,如下:

ajax封装复杂参数

我们测试效果如下:

断点查看效果

总结:ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串

ajax的contentType属性必须是'application/json;charset=utf-8'

在接收参数前面需要加上SpringMVC的@RequestBody注解

ajax方式封装复杂对象(二)

如果我们并没有一个合适的对象来接受我们的参数时,我们可能需要封装到Map中,那么我们需要修改接收请求的Controller方法,如下图:

参数封装成一个大Map

前台ajax参数封装格式一致,无需变更,如下图:

ajax参数封装到map中

我们测试效果如下(正确封装了一个复杂的Map对象):

断点查看map中参数

总结:(其实Map与我们自定义的类是一样的道理)ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串

ajax的contentType属性必须是'application/json;charset=utf-8'

在接收参数前面需要加上SpringMVC的@RequestBody注解

与封装到自定义类的区别:Map取值通过我们约定好的key来取,而类通过自己的属性名来取

ajax方式封装复杂对象(三)

同样,如果我们并没有一个合适的对象来接受我们的参数时,我们也不想使用Map时,那么我们还可以使用字符串来接受复杂的JSON字符串,那么我们需要修改接收请求的Controller方法,如下图:

定义字符串接受json对象字符串

(注意:上图中,我们还用到了Gson这个对象,它是用来处理json字符串与具体的java对象互相转换问题的)

同时我们需要修改jsp中发送请求的ajax方法,如下图:

ajax请求参数封装方法三

总结:ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串,并将该负责的json字符串作为value形成新的json格式的参数对象,如上图中{stuJsonStr:负责json字符串}

Java后台中,需要将接收到的json字符串使用Gson(或者JSONObject等)第三方类转换成我们需要的具体对象.

结尾ps:

小编花了不少时间编写例子,为了突出代码中的关键字,因此采用截图方式,希望各位同学看后能够利用在自己的项目中,或者自己参考编写文中的例子深刻理解一下.若文中有不能理解的地方请留言评论.

java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2相关推荐

  1. java web初级面试题_Java Web应用程序初学者教程

    java web初级面试题 Java Web Application is used to create dynamic websites. Java provides support for web ...

  2. java web 上传附件_JAVA WEB文件上传步骤

    JAVA WEB文件上传步骤如下: 实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中. 1.Web 端上传文件. ...

  3. java项目使用过滤器实例_Java web开发--过滤器篇(详细介绍)

    一. web过滤器的介绍 1.过滤器 在生活中,过滤这种我们时常可见:比如水资源的处理,化学药剂的提取等等.所谓过滤,就是指对某事物的处理进行一定的处理获取相应的结果的一个过程.它可以总结为下: 过滤 ...

  4. java web编码详解_java web 开发 编码问题详解

    java web 开发 编码问题详解 浏览器 IE/FireFox ------------->Servlet容器-------------------------->显示页面 编码   ...

  5. java web jsp相对路径_Java Web中的相对路径与绝对路径总结

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://www ...

  6. java web基础编程题_Java Web基础笔试题

    2015-10-31 06:30:02 阅读( 432 ) 一. 填空题(每空2分,共30分) 1.在tomcat上发布javaweb应用时的默认目录是__webapps___目录. 2.javawe ...

  7. java web应用 生僻字_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  8. java web学什么软件_java web开发是什么?该怎么学习?

    Java中有前端这个开发方向,上回我们说到了javaweb是什么?你们应该对javaweb有了一定的了解了,那你们知道该如何学习web吗?小编这里整理了一些相关知识,快来看看吧. 一.javaweb是 ...

  9. java目前开发的背景_Java web 开发构想[一] 背景和形势

    [Java web 开发构想系列 转自JavaEye社区,在此申明] 1.背景.形势 能够进行Web开发的编程语言和技术很多 (1) 动态解释语言 PHP; Perl; Python (Zope, P ...

最新文章

  1. linux系统ip策略筛选器,在Linux下基于路由策略的IP地址控制
  2. 定时任务:Java中Timer和TimerTask的使用
  3. a java runtime envi_认识java
  4. python的业务场景_python| Binlog务应用场景
  5. QT学习-核心类列表-30、QtSerialPort
  6. fastapi vue socket 从其他文件调用 socket 方法
  7. 一个七年程序员的经验
  8. NOR Flash的原理与操作
  9. 电力电子技术笔记(3)——晶闸管
  10. java毕业设计医院管理系统Mybatis+系统+数据库+调试部署
  11. 提问的智慧 (How To Ask Questions The Smart Way)
  12. 毕业生怎样尽快把自己打造成国际专家级人物?
  13. 新年喜报!10人通过RHCA、60人通过RHCE!
  14. 自然语言处理(1)——绪论与概述
  15. mysql全文索引与停止词
  16. Windows bat 脚本命令基础
  17. app卡在启动页面android,app启动一直停留在启动页面
  18. Java实现 蓝桥杯VIP 算法训练 采油区域
  19. DIY USB3.0 SM2246XT+双贴闪迪15131颗粒256G固态U盘
  20. HP 员工挑战老板的一封信

热门文章

  1. C#规范整理·集合和Linq
  2. .Net Core应用框架Util介绍(三)
  3. 图说世界编程语言排行
  4. ArcGIS实验教程——实验三十九:ArcGIS多元分类(ISO聚类分析、最大似然分类、主成分分析)案例教程
  5. 多种语言《九九乘法表》荟萃:C、C++、C#、JavaScript、SQL、VB、VBA、Python
  6. linux c之出现warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration]这个问题
  7. linux c之gdb常用断点调试总结
  8. Android之添加快捷方式(Shortcut)到手机桌面
  9. 有关 php __autoload 自动加载类函数的用法
  10. 据说很多女生都想知道男生是如何上厕所的?