json信息的后台到前台的传输
公共方法:
/**
* 实际返回的是 response.setContentType("text/html;charset=utf-8");
*
* @param o
*/
public void writeJson(Object o) {
String json = getJsonString(o);
try {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
}
public String getJsonString(Object o) {
ObjectMapper om = new ObjectMapper();
StringWriter sw = new StringWriter();
try {
JsonGenerator jg = new JsonFactory().createJsonGenerator(sw);
om.writeValue(jg, o);
jg.close();
} catch (IOException e) {
e.printStackTrace();
}
return sw.toString();
}
Json形式:
- 形式一:
{"total":29,"rows":[{"id":1,"brandName":"兄弟","isvalid":"已启用"},{"id":2,"brandName":"西红柿","isvalid":"已启用"}]}
后台实现:
List<AuxiliaryBrand> list = auxiliaryService.getAuxiliaryBrand(paramMap,intPage,number,user);
int count = auxiliaryService.getAuxiliaryBrandCount(paramMap,user);
Map<String, Object> map = new HashMap<String, Object>();
map.put("total", count);
map.put("rows", list2);
this.writeJson(map);//顶部公共方法
前台获取:
onLoadSuccess: function (data) {
if (data.total == 0) {
//active
}
var rows = data.rows;
}
- 形式二:
{"success":false,"msg":"品牌名称【兄弟】已存在!请重新输入!","obj":null}
后台:
/**
* 品牌重复性检索
*/
public void repeatCheckAuxiliaryBrand(){
String brandName = request.getParameter("brandName");
String actionType = request.getParameter("actionType");
int checkFlag= auxiliaryService.repeatCheckAuxiliaryBrand(brandName,actionType);
Json j=new Json();
if(checkFlag==2){
j.setSuccess(false);
j.setMsg("品牌名称【"+brandName+"】已存在!请重新输入!");
}else{
j.setSuccess(true);
j.setMsg(actionType);
}
this.writeJson(j);//顶部公共方法
}
Json对象j的数据
response.getWriter().write(json);后的值
传到前台接收:
/**
* 重复检验
*/
function repeatCheck(actionType){
var brandName = $('#brandNames').textbox('getValue');
var url = context_path + '/auxiliary/repeatCheckAuxiliaryBrand.do';
$.ajax({
url : url,
data : {
brandName : brandName,
actionType :actionType
},
dataType : 'json',
success : function(result) {
if (result.success){
var action=result.msg;
submitSave(action);
return true;
}else{
$.messager.alert('操作提示', result.msg,'warning');
return false;
}
}
});
}
json信息的后台到前台的传输的更多相关文章
- 前台jquery+ajax+json传值,后台处理完后返回json字符串,如何取里面的属性值?(不用springmvc注解)
一.取属性值 前台页面: function select(id){ alert("hfdfhdfh"+id); $.ajax({ url:"selectByid.jsp& ...
- 用ajax获取后台数据,返回json数据,怎么在前台使用?
用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...
- bootstrap-treeview后台Json数据的封装及前台的显示
1.bootStrap-treeview是我们常用的树形结构,页面风格也比较清新,但是后台数据的封装比较麻烦,经过研究终于解决,和大家分享一下. 2.前端代码如下 <script> var ...
- 后台向前台响应的json数据格式的一些问题
最近在写后台向前台easyUI页面发送数据时遇到的一些报错. 首先easyUI内部封装了许多的方法和对象,以至于很多参数都不清楚,需要查询,其次easyUI也是有内置ajax所以从后台响应回来的数据一 ...
- 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——理论篇
工作两年多了,我会经常尝试给公司小伙伴儿们解决一些问题,几个月下来我发现初入公司的小朋友最爱问的问题就三个 1. 我想前台调用后台的XXX方法怎么弄啊? 2. 我想后台调用前台的XXX JavaScr ...
- ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组
1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一 ...
- 【spring 注解 错误】使用controller 作为后台给前台ajax交互数据出错
controller作为后台与前台的ajax进行交互,后台的方法处理完成返回一个boolean类型的值,想传给前台用来判断是否执行成功,BUT,问题来了: 严重: Servlet.service() ...
- js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)
转自:http://blog.csdn.net/wang379275614/article/details/17049721 客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后 ...
- js调用.net后台事件,和后台调用前台等方法以及js调用服务器控件的方法
http://blog.csdn.net/deepwishly/article/details/6670942 ajaxPro.dll基础教程(前台调用后台方法,后台调用前台方法) 1. javaS ...
随机推荐
- vue指令
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>指令 ...
- spring cloud 路由网关zuul基本使用
在微服务架构中,需要几个关键的组件,服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个组件可以组建一个简单的微服务架构.客户端的请求首先经过负载均衡(zuul.Ngnix),再 ...
- 如何上传项目到Git
1.首先下载Git,然后安装 我用的版本是Git-2.15.0-64-bit 2.在你的Git上创建一个新的Progect 创建完成后,会出现这样的窗口,红框圈出来的就是你的Git项目路径 3.在本地 ...
- 饮冰三年-人工智能-Python-12之利其器pycharm
1:下载.安装.与激活这里不再介绍了.需要注意的是激活时需要修改C:\Windows\System32\drivers\etc\hosts文件 2:工具使用 2.1 HelloWorld File& ...
- 如何获取jar包的在执行机上面的路径
背景: 最近在项目中遇到一个小问题, 几行代码就能解决了 String path = this.getClass().getProtectionDomain().getCodeSource().get ...
- PV-UV-QPS
QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...
- [转] webpack之前端性能优化(史上最全,不断更新中。。。)
最近在用webpack优化首屏加载性能,通过几种插件之后我们上线前后的速度快了一倍,在此就简单的分享下吧,先上个优化前后首屏渲染的对比图. 可以看到总下载时间从3800ms缩短到1600ms. 我们在 ...
- SP3734 PERIODNI - Periodni
题解: 第一道笛卡尔树dp 会发现以一个点为分界 如果左边大于它右边大于它 那么大于的那部分是相互不影响的 于是我们对序列建立笛卡尔树 满足父亲节点的v<儿子节点的v 然后这棵树的中序遍历为原序 ...
- bzoj2683&&bzoj4066
题解: 前一题不是强制在线,后一题是强制在线 树套树空间会炸 说一下cdq分治+树状数组 首先我们利用cdq分治使得查询和操作保证先后关系 然后矩阵查询变成4个矩阵的差 那么我们就可以运用扫描线的方法 ...
- 【AtCoder】AGC015
AGC015 A - A+...+B Problem #include <bits/stdc++.h> #define fi first #define se second #define ...