springMVC接受ajax提交表单,json数据的两种方式

作为一个初入互联网行业的小鑫鑫,在使用springMVC时发现一个好耍的东西,决定记下来,免得哪天忘了,哈哈

第一种

序列化表单,将表单数据序列化为json对象字符串

	$("#submit").click(function (){
		var form=$("form").serializeArray();
		$.ajax({
			url:"${pageContext.request.contextPath}/teacher/updateTeacher",
			data:form,
			type:"POST",
			dataType : "json",
			error : function(data) {
				alert("修改成功");
				location.reload();
			}
		});
	});

对应的springMVC要这样接手数据就可以了

@RequestMapping(value="updateTeacher")
	@ResponseBody
	public String updateTeacher(Teacher teacher,Model model){
		teacherService.updateByPrimaryKeySelective(teacher);
		Teacher longinTeacher = teacherService.loginExp(teacher);
		model.addAttribute("loginteacher", longinTeacher);
		return "success";
	}

第二种

构建json对象

                        var zdgzs=[];
   			//获取页面所有的数据,组装json对象
  			for(var i=0;i<qtcsId.length;i++){
  				var zdgz={
   			"zdgzNd" :zdgzNd,
   			"rwlyValue" :rwlyValue,
   			"rwlyName" :rwlyName,
   			"lwwh" :lwwh,
   			"lwbt" :lwbt,
   			"qtcsId" :qtcsId.eq(i).val(),
  			"qtcsName" :qtcsName.eq(i).html(),
   			"phcsId" :[phcsId.eq(i).val()],
   			"phcsName" :[phcsName.eq(i).html()],
   			"rwnr" :rwnr.eq(i).val()
   			}; 
   			zdgzs.push(zdgz);
   			}

再次一个zdgz对象的数据就构建好了

ajax传用JSON.stringify(zdgzs)转换下数据,设置传入后台的数据类型为json

$.ajax({
			type: "POST",
			url: "${pageContext.request.contextPath}/zdgz/addzdgz.do",
			contentType: "application/json; charset=utf-8",
			data:JSON.stringify(zdgzs),
			dataType: "json",
			success: function (message) {
			if (message > 0) {
			alert("添加成功");
			window.location.href="${pageContext.request.contextPath}/zdgz1/selectzdgz.do/s/0";
			}

后台接收方式,使用springMVC中的@requsetBody 注解来控制参数类型,强大的springMVC就能把前台的json数据自动装配成对应对象的List数组了(需要加springMVC中带的json包)

	@RequestMapping(value="/addzdgz.do",method = RequestMethod.POST)
	public @ResponseBody int addzdgz(@RequestBody List<Zdgz> zdgzs){
		for(Zdgz zdgz:zdgzs){
			if ("请选择".equals(zdgz.getRwlyName()) || "请选择".equals(zdgz.getQtcsName())
					|| "请选择".equals(zdgz.getPhcsName()) || "".equals(zdgz.getRwnr()) || null == zdgz.getRwnr()) {
				return 0;
			}

			zdgz.setDtmdjsj(new Date());
			zdgzService.addZdgz(zdgz);
		}
		return 1;
	}

ok,这个写完了,以后自己没事可以看看

时间: 2024-08-01 22:46:14

springMVC接受ajax提交表单,json数据的两种方式的相关文章

浏览器原生 form 表单POST 数据的两种方式

我们在提交表单的时候,form表单参数中会有一个enctype的参数.enctype指定了HTTP请求的Content-Type. 常用有两种:application/x-www-form-urlencoded和multipart/form-data. application/x-www-form-urlencoded: 窗体数据被编码为名称/值对,并且将提交的数据进行urlencode.默认情况下,我们所有的表单提交都是通过这种默认的方式实现的. multipart/form-data: 窗体

向服务器传json数据的两种方式

接触到了向服务器传JSON数据,那么怎么把参数以JSON的形式,传到服务器呢.下面来说说,json字符串的得到方法.一共有两种方式来得到Json的字符串.当然,向服务器上传,不能传字符串,是要转成NSData的,也就是二进制的形式.这个在此不讨论,只说,怎么得到json的字符串. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法,是把要传的参数

【代码笔记】向服务器传JSON数据的两种方式

一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法,是把要传的参数组合成一个数组,然后由JSONKit把字典转为字符串 NSDictionary* jsonDic = [NSDictionary dictionaryWithObjectsAndKeys:@"李华",@"name",@"女&quo

MVC中返回json数据的两种方式

MVC里面如果直接将数据返回到前端页面,我们常用的方式就是用return view(): 那么我不想直接用razor语法,毕竟razor这玩意儿实在是太难记了,还不如写ajax对接来得舒服不是 那么我们可以这么做 1.定义ActionResult,返回json,标记属性可以采用HttpPost,也可以是用HttpGet,按自己的需求来使用 public ActionResult UpdateDownloadInJson(string deviceNames,string programNames

ajax提交表单序列化(serialize())数据

知识点: $("#form").serialize();将表单数据序列化为标准URL编码文本字符串(key1=value1&key2=value2…). 以下用一个例子来演示ajax提交表单序列化数据. 表单内容: <form id="f1"> <label for="realname" >姓名:</label><input type="text" name="rea

JQuery ajax提交表单及表单验证

JQuery ajax提交表单及表单验证 博客分类: jsp/html/javascript/ajax/development Kit 开源项目 注:经过验证,formValidator只适合一个页面不超过一个表单的情况. 本例实现功能:通过ajax提交表单,并在提交表单前对表单的数据进行验证. 主要通过两个插件实现: 第一个: jQuery Form Plugin http://jquery.malsup.com/form 主要功能是ajax提交表单 第二个:jQuery formValida

Validator验证Ajax提交表单的方法

当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form在同一个页面的情况,但是提交一个表单以后不想页面刷新或者跳转,那么我们考虑到的就是Ajax提交表单,那么如何让Jquery的validator插件也可以对异步提交的表单进行验证呢?我们继续往下看. 在这里,我就用网络上的一个例子来说明好了. 下面是一个比较常见的jquery .ajax提交表单的写法 Js代码   $("#submitButton").click(function(){ //序列化表单 var param = 

ajax提交表单、ajax实现文件上传

ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持含有文件的复杂表单; ($.post 或 $.get底层用的都是$.ajax) 方式三:使用jquery插件ajaxFileUpload.js, 支持上传文件,但不支持提交表单 方式四:使用jquery.from.js,支持提交同时

关于ajax提交表单

今天主要是四个问题: 1.表单页面元素的获取: 2.按钮的值的获取: 3.按钮的值以变量提交: 4.表单的提交: 获取表单元素时用的是事件委托的方法.{犯的错误:1.用获取表格父级元素的方法获取,没有意识到表单的值是填在value里面的,而表格里面的值直接在th容器里填的 2.在考虑父级元素时没有考虑到它所有的容器都属于他的父级元素