Java如何实现form表单提交的数据自动对应实体类(源码)
原文出自:https://blog.csdn.net/seesun2012
原生Java+JQuery form表单serializeArray提交自动对应java实体,这是一个实际的例子:
html界面:
<form id="data-form">
秒杀一:<input class="td_input" name="killA" type="number"><br>
秒杀二:<input class="td_input" name="killB" type="number"><br>
秒杀三:<input class="td_input" name="killC" type="number"><br>
秒杀四:<input class="td_input" name="killD" type="number"><br>
</form>
<div>
<span id = "killApple" style="padding: 20px;">开始秒杀</span>
</div>
JS脚本,表单序列化 + 异步请求:
//点击提交,发送异步请求
$("#killApple").click(function(content){
//获取表单数据,并序列化
var formData = $("#flop-form").serializeArray();
//将序列化数据转为对象
var formObject = {};
for (var item in formData) {
formObject[formData[item].name] = formData[item].value;
}
formData = JSON.stringify(formObject);
//发送JSON到服务器
$.ajax({
type: "POST",
url: "/kill/killOrder",
contentType: "application/json", //一定要设置这一行,很关键
data : formData,
datatype: "json",
success: function (data) {
alert(JSON.stringify(data));
}
});
});
秒杀下单控制器:
package com.seesun2012.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.seesun2012.dao.entity.KillOrder;
import com.seesun2012.utils.Result;
/**
* 【秒杀下单】控制器
*
* @author seesun2012@163.com
*
*/
@Controller
@RequestMapping("/kill")
public class GameController extends BaseController{
/**
* 衬衫秒杀
*/
@RequestMapping(value = "/killApple", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
public Result killOrder(HttpServletRequest request, @RequestBody KillOrder ko){
try {
//具体业务实现
return Result.build(200, "秒杀成功");
} catch (Exception e) {
return Result.build(500, e.getMessage());
}
}
}
秒杀实体Bean:
package com.seesun2012.dao.entity;
/**
* 秒杀参数实体
*/
public class KillOrder {
private Integer killA;
private Integer killB;
private Integer killC;
private Integer killD;
//TODO GET、SET方法...
}
秒杀结果返回工具类:
package com.seesun2012.utils;
import java.io.Serializable;
import java.util.HashMap;
/**
* 统一返回结果类
*
* @author seesun2012@163.com
*
*//
public class Result extends HashMap<String, Object> implements Serializable {
private static final long serialVersionUID = 1L;
public static final Result SUCCEED = new Result(0, "操作成功");
public Result(int status, String massage) {
super();
this.put("status", status).put("message", massage);
}
public Result put(String key, Object value) {
super.put(key, value);
return this;
}
public static Result build(int i, String message) {
return new Result(i, message);
}
}
Java如何实现form表单提交的数据自动对应实体类(源码)的更多相关文章
- 非form表单提交的数据就要用@requestbody注解获取http传过来的值,尤其json
非form表单提交的数据就要用@requestbody注解获取http传过来的值,尤其json
- Asp 循环输出 form 表单提交的数据
亲测asp提交form表单数据,在接收页面循环输出数据 dim var for each var in request.form response.write var&"=" ...
- 从页面获取form表单提交的数据
1 使用HttpServletRequest,方便灵活 页面代码,使用action提交一个表单,里边有球的id,球的主人,球的颜色,所在省份,区域 <form action="ball ...
- springMVC+thymeleaf form表单提交前后台数据传递
后端: @RequestMapping(value = "/add", method=RequestMethod.POST) public String save(@ModelAt ...
- form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决
form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决 一.问题: 页面输入框中的中文内容,在后台乱码,导致搜索功能失效:(详细可以见后面的重现) 二.原因: 浏览器对于数据的默认编码格式为 ...
- Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)
一.HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...
- jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用
一.jQuery Form的其他api 1. formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...
- SpringMVC中使用bean来接收form表单提交的参数时的注意点
这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...
- java post请求的表单提交和json提交简单小结
在java实现http请求时有分为多种参数的传递方式,以下给出通过form表单提交和json提交的参数传递方式: public String POST_FORM(String url, Map< ...
随机推荐
- .NET CORE 2.1 导出excel文件的两种方法
最近在做 MVC 项目的时候遇到项目的导出,下面总结下两种导出到excel 的方法 第一种方法: 将文件写到本地,然后返回这个File 或者返回这个 File 的绝对地址 其中 _hostingE ...
- 一文解锁BILIBILI、ACFUN等弹幕网站是如何审核视频
欢迎访问网易云社区,了解更多网易技术产品运营经验. 人工审核对于A站和B站都是很重要的. AcFun稿件审核通行标准(V1.1) 表明,要审核的东西非常多,除了内容本身的合规性.调性,还有画质音质.撞 ...
- poj 3468 A Simple Problem with Integers 线段树区间加,区间查询和(模板)
A Simple Problem with Integers Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?i ...
- SnowFlake 生成全局唯一id
public class SnowFlakeUtil { private long workerId; private long datacenterId; private long sequence ...
- 五,Smarty模板技术/引擎——自定义函数机制
自建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用: 示例:使用smarty自定义函数的机制,编写一个函数myfun1,通 ...
- Linux环境下完成远程系统迁移
一.基础 了解: netcat是个计算机网络公用程式,用来对网络连线TCP或者UDP进行读写.nc命令是netcat命令的简称,都是用来设置路由器.netcat 在2001年insecure.org对 ...
- redis 3.0 集群__监控警报工具(sentinel)
参考文档 http://redis.readthedocs.org/en/latest/topic/sentinel.html 因为目前还处于开发阶段,就先不研究了,待续
- 机器学习 - ML + 深度学习 - DL
机器学习 CNCC - 2016 | 机器学习(原文链接) Machine Learning - ML,机器学习起源于人工智能,是AI的一个分支. 机器学习的理论基础:计算学习理论 - Computa ...
- [译文]casperjs使用说明-使用命令行
使用命令行 Casperjs使用内置的phantomjs命令行解析器,在cli模块里,它传递参数位置的命名选项 但是不要担心不能熟练操控CLI模块的API,一个casper实例已经包含了cli属性,允 ...
- 为什么int类型的数据可以存储超过9999?
int占4字节,4*8=32位,10进制取值范围为 (-2^31-1)~(2^31-1):-2147483648~2147483647 package test; public class test1 ...