封装springmvc处理ajax请求结果
原文链接:http://blog.csdn.net/qq_37936542/article/details/79064818
需求描述:ajax向后台发起请求,springmvc在处理完请求后返回的结果类型不能够统一,int/String/Map/List等等,这里我自定义一个类,封装返回结果
一:封装主类 AjaxResponse
- package com.debo.common;
- import java.util.HashMap;
- import java.util.Map;
- public class AjaxResponse {
- private ReturnState returnState;
- private String returnMsg;
- private Map<String, Object> returnData = new HashMap<String, Object>();
- public AjaxResponse() {
- this(ReturnState.OK, "");
- }
- public AjaxResponse(String returnMsg) {
- this(ReturnState.OK, returnMsg);
- }
- public AjaxResponse(ReturnState returnState, String returnMsg) {
- this.returnState = returnState;
- this.returnMsg = returnMsg;
- }
- public AjaxResponse(String attributeName, Object attributeValue) {
- this();
- addAttribute(attributeName, attributeValue);
- }
- public static AjaxResponse getInstanceByResult(boolean result) {
- if (result) {
- return new AjaxResponse(Constant.OPERATE_SUCCESS);
- } else {
- return new AjaxResponse(ReturnState.ERROR, Constant.OPERATE_ERROR);
- }
- }
- public ReturnState getReturnState() {
- return returnState;
- }
- public void setReturnState(ReturnState returnState) {
- this.returnState = returnState;
- }
- public String getReturnMsg() {
- return returnMsg;
- }
- public void setReturnMsg(String returnMsg) {
- this.returnMsg = returnMsg;
- }
- public Map<String, Object> getReturnData() {
- if (returnData == null) {
- returnData = new HashMap<String, Object>();
- }
- return returnData;
- }
- public void setReturnData(Map<String, Object> returnData) {
- this.returnData = returnData;
- }
- public AjaxResponse addAttribute(String attributeName, Object attributeValue) {
- getReturnData().put(attributeName, attributeValue);
- return this;
- }
- }
二:返回状态枚举 ReturnState
- package com.debo.common;
- /**
- * Ajax返回状态
- *
- * @author lzg
- */
- public enum ReturnState {
- OK,
- WARNING,
- ERROR
- }
三:系统常用常量 Constant
- package com.debo.common;
- public class Constant {
- public static final int ZERO = 0;
- public static final String SUCCESS = "success";
- public static final String ERROR = "error";
- public static final String OPERATE_SUCCESS = "操作成功!";
- public static final String OPERATE_ERROR = "操作失败!";
- public static final String NOT_PERMITTED = "权限不足!";
- public static final String STATE1 = "1";
- public static final String STATE2 = "2";
- public static final int AFFECTED_LINE_0 = 0;
- public static final int AFFECTED_LINE_1 = 1;
- }
四:后台测试代码
- package com.debo.common;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- @Controller
- public class Test {
- @RequestMapping("/test")
- @ResponseBody
- public AjaxResponse demo(){
- //操作正确时,返回正确信息
- //return new AjaxResponse(ReturnState.OK,"操作成功");
- //return new AjaxResponse("操作成功");
- //return AjaxResponse.getInstanceByResult(true);
- //操作失败,返回失败信息
- //return new AjaxResponse(ReturnState.ERROR,"登录名已存在");
- //return AjaxResponse.getInstanceByResult(false);
- //返回一个对象、集合或map
- //return new AjaxResponse("returnDate", map/List/对象);
- //返回多个对象、map、集合
- //AjaxResponse ajaxResponse = new AjaxResponse();
- //ajaxResponse.addAttribute("aaa", map);
- //ajaxResponse.addAttribute("bbb", list);
- //ajaxResponse.addAttribute("ccc", 对象);
- //默认操作成功,无返回信息
- return new AjaxResponse();
- }
- }
五:前端ajax代码
- $.ajax({
- url : "test",
- type : "get",
- dataType : "json",
- success : function(data) {
- //返回状态
- //alert(data.returnState);
- //返回信息
- //alert(data.returnMsg)
- //返回的对象/集合/map
- alert(data.returnData.aaa)
- }
- });
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等8G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程
领取方式:
如果需要学习视频,欢迎关注 【编程微刊】微信公众号,回复【领取资源】一键领取以下所有干货资源,获取更多有用技术干货、文档资料。所有文档会持续更新,欢迎关注一起成长!
封装springmvc处理ajax请求结果的更多相关文章
- SpringMVC的AJAX请求报406错误
SpringMVC的AJAX请求报406错误原因有两种:1.jackson包没有引入 2.如果已经引入jackson包了还报406的错误,那么就有可能是请求的url路径是.html结尾,但是返回的数据 ...
- SpringMVC响应Ajax请求(@Responsebody注解返回页面)
项目需求描述:page1中的ajax请求Controller,Controller负责将service返回的数据填充到page2中,并将page2整个页面返回到page1中ajax的回调函数. 一句话 ...
- SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据
SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...
- SpringMVC进行Ajax请求页面显示乱码
最近在项目的使用过程中发现在springmvc的项目中,使用返回页面的请求方式,数据都能正常显示,但是对于ajax的请求,始终显示乱码. 首先第一种是因为我们在web.xml中配置了spring的字符 ...
- SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求
请求或响应的中文乱码问题 tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题 tomcat10解决了get和post请求以及响应的中文乱码问题 考虑到实际 ...
- SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
- SpringMVC处理ajax请求的注意事项
.首先要知道ajax请求的核心是JavaScrip对象和XmlHttpRequest,而浏览器请求的核心是浏览器 ajax请求 浏览器请求 场景一:使用ajax获取session中的user 从上图可 ...
- 使用es6的then()方法封装jquery的ajax请求
使用场景: jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了. 示 ...
- SpringMVC处理ajax请求的跨域问题和注意事项
.首先要知道ajax请求的核心是JavaScrip对象和XmlHttpRequest,而浏览器请求的核心是浏览器我的个人博客(基于SSM,Redis,Tomcat集群的后台架构) github:htt ...
随机推荐
- 洛谷——P1540 机器翻译
https://www.luogu.org/problem/show?pid=1540#sub 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的 ...
- Bag of Features (BOF)图像检索算法
1.首先.我们用surf算法生成图像库中每幅图的特征点及描写叙述符. 2.再用k-means算法对图像库中的特征点进行训练,生成类心. 3.生成每幅图像的BOF.详细方法为:推断图像的每一个特征点与哪 ...
- 用电脑从Google Play下载apk
用电脑从Google Play下载apk 方法一:给Chrome浏览器安装apk-downloader插件,需禁止 SSL 错误警告,即在Chrome的快捷方式上加入"--ignore-ce ...
- 3.实战HTML+CSS布局(实例入门篇)
转自:https://www.cnblogs.com/hmyprograming/archive/2012/03/23/2414373.html 学习这篇入门教程我们假定你已经具有了一定的HTML基础 ...
- JS学习笔记 - fgm练习 - 数字自增 定时器 数字比大小Math.max
<script> window.onload = function(){ var oP = document.getElementsByTagName('p')[0]; var i = 0 ...
- Python 极简教程(七)列表 list
由于列表过于重要,请认真看完并保证所有代码都敲过一遍. 什么是列表 列表是 Python 中最常用的数据结构,也是一种数据类型,其样式如下: li = [1, 2, 3, 'a', 'b'] 列表是一 ...
- [置顶]
WebService学习总结(3)——使用java JDK开发WebService
一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...
- JIRA6.3.6 安装汉化破解指南
JIRA6.3.6 安装汉化破解指南 近期试着安装了下JIRA,碰到了些问题.特记录下来,供后来者使用: 1.常规安装 1.1. 下载并安装jira 从官网下载atlassian-jira-6.3.6 ...
- GO语言学习(十)Go 语言条件语句
Go 语言提供了以下几种条件判断语句: 语句 描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成. if...else 语句 if 语句 后可以使用可选的 else 语句, els ...
- [D3] Build a Scatter Plot with D3 v4
Scatter plots, sometimes also known as bubble charts, are another common type of visualization. They ...