`
newbee_zc
  • 浏览: 30944 次
文章分类
社区版块
存档分类
最新评论

java接收前台的json数据的几种方式

 
阅读更多

使用ajax向后台传递参数,使用参数绑定的方式笔记:

 

第一种,使用@RequestParam逐个对应接收:

  

    js代码:

 

        var url = "/rest/register";
	var phoneNo = $("#mobile").val();
	var nickname=$("#nickname").val();
	var password = $("#signPwd").val();
	var code = $('#mobileValidateCode').val();
	//判断注册角色(默认为投资人角色)
	var role=2;
	var rs = null;
	$(".reg-items :input").attr("disabled", true);
	$.ajax({
		data:({
			"phoneNo" : phoneNo,
			"nickname" : nickname,
			"password" : password,
			"role" : role,
			"code":code,
			"spreadCode": $("#spreadCode").val()
		}),
		url:url,
		type:"POST",
		dataType:"json",
		cache : false,
		success:function(data){

               }
      });

   

 

   后台代码:

  

 @RequestMapping(value = "register", method = RequestMethod.POST)
    public CommonResult<String> register(
            @RequestParam("phoneNo") String phoneNo,
            @RequestParam("nickname") String nickname,
            @RequestParam("password") String password,
            @RequestParam("role") int role, @RequestParam("code") String code,
            @RequestParam(required = false, value="spreadCode") String spreadCode,
            HttpServletRequest request)

 此种方法使用起来简单直接,不宜出错,缺点也很明显,方法的参数列表过长。

 

 

 

第二种:使用@ModelAttribut进行参数绑定

   html代码:

<form id="ybdForm">
	        <ul class="login-items">
	            <li>
	            	<div class="input-div">姓名</div>
	                <input type="text" id="userName" name="userName" class="input" placeholder="请输入姓名">
	                <div class="error" id="userNameError"></div>
	            </li>
	            <li>
	            	<div class="input-div">昵称</div>
	                <input type="text" id="nickName" name="nickName" class="input" placeholder="请输入昵称">
	                <div class="error" id="nickNameError"></div>
	            </li>
	            <li>
	            	<div class="input-div">手机号码</div>
	                <input type="text" id="phone" name="phone" class="input" placeholder="请输入手机号码">
	            	<div class="error" id="phoneError"></div>
	            </li>
	            <li>
	            	<div class="input-div">身份证号码</div>
	                <input type="text" id="idCard" name="idCard" class="input" placeholder="请输入身份证号码">
	                <div class="error" id="idCardError"></div>
	            </li>
	            <li>
	            	<div class="input-div">贷款金额</div>
	                <input type="text" name="loanAmount" id="loanAmount" class="input" placeholder="请输入贷款金额">
	            	<div class="error" id="loanAmountError"></div>
	            </li>
	            <li>
	            	<div class="input-div">图片验证码</div>
	                <input type="text" name="imgCode" id="imgCode" class="input" placeholder="请输入图片验证码">
	                <div class="authImage">
	                	<a href="javascript:refreshImageCode();">
	                		<img id="imageCode" alt="" src="/authImage" style="height: 45px;"/>
	                	</a>
	                </div>
	                <div class="codeTime">
	                	<a href="javascript:refreshImageCode();">看不清,换一张</a>
	                </div>
	                <div class="error" id="imgCodeError"></div>
	            </li>
	            <li>
	            	<div class="input-div">手机验证码</div>
	                <input type="text" name="smsCode" id="smsCode" class="input" placeholder="请输入手机验证码">
	                <div class="sms-code">
	                	<a href="javascript:sendVerifycodeByMobile();" class="r3 getVerifyType getVerify-Valid" id="msgCode">短信获取</a>
	                </div>
	                <div class="codeTime" id="phoneCode" style="display: none;">
	                	60秒后重新获取
	                </div>
	                <div class="error" id="smsCodeError"></div>
	            </li>
	        </ul>
        	<div class="login-area">
		        <div class="login-button">
		            <div class="loginAnNiu" onclick="Loan();"></div>
		        </div>
		        <div class="login-server"> 
		        	<font>已有帐号?</font>
		        	<a href="/login/login.html" style="text-decoration: none;"><font class="mimaFont">请登录</font></a>
		        </div>
	        </div>
	        </form>

 

 
    js代码:

  

$.ajax({
			type:"POST",
			data:$('#ybdForm').serialize(),
			url:"/rest/applyLoan",
			cache : false,
			success:function(result){}
});

 

    java代码:

  

@RequestMapping(value="applyLoan",method=RequestMethod.POST)
	public CommonResult<Map<String, String>> applyLoan(
			@ModelAttribute ApplyView apply, HttpServletRequest request) {}

 使用参数绑定,避免了后台重新初始化对象所带来的冗余代码,需要着重提醒的是:ApplyView接收对象中的属性名必须与form表单中需要提交的<input>标签或其他标签的name属性完全对应

 

 

第三种:使用@RequestBody进行参数绑定(以传递数组为例)

 

    js代码:

var waitRegistArray = [];
	$(":checkbox[name=checkboxBtn][checked=checked]").each(function(){
			var regist = waitRegist[$(this).val()];
			var  data={"name":regist.name,"phoneNo":regist.phoneNo,"cardNo":regist.cardNo};  
				waitRegistArray.push(data);
			});
			$.ajax({
				url:"rest/batchRegist",
				data:JSON.stringify(waitRegistArray),
				contentType:"application/json",        
				type:"POST",
				dataType:"json",
				async: false,
				cache:false,
				success:function(result){}
})

 

   java代码:

  

@RequestMapping(value="batchRegist",method=RequestMethod.POST)
	public CommonResult<String> batchRegist(@RequestBody List<User> users){}

 json数组以List集合方式接收,其中User对象属性与数组中的对象属性名对应!

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    springMVC接收和返回参数各种情况整合

    本文将详细介绍几种常见的Spring MVC接收前端数据的方法,并提供具体的实现案例。 #### 二、基本概念介绍 Spring MVC 是一种基于Java的轻量级Web框架,它提供了丰富的功能来处理HTTP请求。其中,如何有效地从前端...

    AJAX前台应用

    **AJAX 前台应用详解** ...以上就是关于AJAX在Java前台应用中的详细讲解,涵盖了其特点、工作原理、应用场景及注意事项。了解并掌握这些知识点,对于提升Web应用的性能和用户体验有着重要的作用。

    SpringBoot前后端传值.docx

    主要分为以下几种情况: - `application/x-www-form-urlencoded`:此格式的数据可通过 `@RequestParam`、`@ModelAttribute` 或 `@RequestBody` 进行处理。 - `multipart/form-data`:当表单中包含文件上传时,...

    jsp异步分页代码.zip

    本示例是关于“jsp异步分页代码”的分享,旨在利用JSON数据在前台实现分页功能。下面将详细讨论JSP(JavaServer Pages)异步分页的相关知识点。 首先,JSP是Java的一种动态网页技术,允许开发者在HTML页面中嵌入...

    友盟消息推送java后台模块demo

    其中,消息推送服务允许开发者向iOS和Android设备发送通知,无论应用是否在前台运行,都能接收到推送的消息。 在"友盟消息推送java后台模块demo"中,核心代码应该位于`Demo.java`文件中。这个主类通常会包含初始化...

    WebService通用調用方式及源碼

    4. **解析响应数据**:将接收到的XML或JSON响应数据转换为Java对象,便于后续处理。 5. **异常处理**:处理可能出现的网络错误、解析错误等异常情况。 6. **日志记录**:为了调试和监控,可能会包含日志记录功能,...

    简单Ajax前台后台实例

    在这个例子中,Servlet接收Ajax请求,根据商品ID查询数据库中的单价,然后计算新的总价,并将结果以JSON格式返回。 ```java @WebServlet("/AjaxBackground") public class AjaxServlet extends HttpServlet { ...

    ajax提交中文乱码解决方法

    当通过AJAX向服务器发送含有中文的数据时,如果编码方式设置不当,就可能导致服务器端接收到的数据变成乱码。这主要是因为客户端和服务器端使用的字符集不一致导致的。 **具体来说:** 1. **客户端编码**:前端...

    Springboot DTO字符字段与日期字段的转换问题.docx

    解决这个问题有几种方法: 1. **使用`@JsonFormat`注解**: 可以在`birthday`字段上添加`@JsonFormat`注解,指定日期格式和时区,如: ```java @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") ...

    前后台交互的实时进度条 支持多浏览器

    7. **数据格式**:前后端之间的数据交换格式可能是JSON,XML或者其他结构化格式,关键在于确保数据能够准确无误地传达进度信息。 在提供的"动态进度条"压缩包文件中,可能包含了前端的HTML、CSS、JavaScript代码,...

    AJAX重构+级联下拉列表

    4. **服务器端处理**:服务器接收到请求后,根据传递的参数查询数据库,找到相应的下级数据,然后以JSON格式返回。 5. **更新DOM**:在JavaScript中解析服务器返回的JSON数据,更新第二个下拉框的选项。这可能涉及...

    Firebase云消息传递Web推送

    5. **处理推送消息**:FCM提供了两种处理消息的方式——后台接收和前台接收。使用`messaging.onBackgroundMessage()`处理后台消息,而`messaging.onMessage()`则用于处理用户在浏览网站时收到的消息。这些回调函数...

    android客户端服务端采用Socket通信

    Socket通信提供了一种高效、灵活的方式来进行双向数据传输。本篇将深入探讨如何在Android客户端与服务端之间利用Socket进行通信。 首先,我们要理解Socket的基本概念。Socket,也称为套接字,是网络编程中的一个...

    time-manager:用于管理花在不同任务上的时间的应用程序

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这款应用中,JSON API作为应用程序与服务器之间的桥梁,负责接收和发送关于时间记录的信息,使得...

    Android总结

    在Android开发中,文件存储是最基础且简单的一种数据存储方式,它主要用于简单的文本或二进制数据的存储。 - **写入操作**: - `openFileOutput(String name, int mode)` 方法用于创建一个文件输出流。 - 参数...

    archeage-server-status:简单的 Android 应用程序,用于显示 Archeage 服务器和服务状态,并在所选服务器启动或关闭时创建通知

    Java 是一种广泛使用的面向对象的编程语言,具有跨平台、安全性高和性能优秀的特点,尤其适合开发移动应用。在 Archeage Server Status 中,Java 被用来构建应用程序的后端逻辑,处理数据请求、解析服务器状态信息...

    ssm整合jar包

    SSM整合,全称为Spring、SpringMVC和MyBatis的集成,是Java Web开发中常见的一种框架组合,用于构建高效、灵活的Web应用程序。这三个框架各有其专长,Spring作为核心容器,负责管理对象的生命周期和依赖注入;...

    APNS push例子

    在iOS开发中,Apple Push Notification service(简称APNs)是一项至关重要的服务,它允许应用程序开发者向用户的设备发送远程通知,即使应用不在前台运行也能接收到这些消息。APNs的使用通常涉及服务器端和客户端两...

    计算机软件-编程源码-酒店管理系统.zip

    酒店管理系统是一种专为酒店业设计的信息技术解决方案,它涵盖了预订、入住、退房、客房管理、财务管理、员工管理等多个核心业务流程。这个压缩包“计算机软件-编程源码-酒店管理系统.zip”包含了实现这些功能的源...

Global site tag (gtag.js) - Google Analytics