【自制工具类】struts返回json数据包装格式类
自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包
先看下效果(这里没有使用msg,有兴趣的往下看):
上demo:
import java.util.HashMap; /**
* JSON响应处理工具类
*
* 返回一个json对象,包含status/msg/data,
* checkOK()默认status:200/checkFail()默认status:500
* 其中checkOK(Object data)比较特殊,直接返回的是这个对象的json
* 其他均为status/msg/data返回格式
*
* @author Hellxz
* @date 2017年10月21日
* @version 1.0
*/
public class JsonResult { /**检查成功,返回200**/
public static Object checkOK(){
Object result = build(200, null, null);
return result;
}
/**检测成功,返回200,msg**/
public static Object checkOK(String msg){
Object result = build(200, msg, null);
return result;
}
/**检查成功,直接返回json对象**/
public static Object checkOK(Object data){
Object result = com.alibaba.fastjson.JSONObject.toJSON(data);
return result;
} /**检查成功的响应,返回200,msg,data**/
public static Object checkOK(String msg, Object data){
Object result = build(200, msg, data);
return result;
} /**检查失败,只返回500**/
public static Object checkFail(){
Object result = build(500, null, null);
return result;
}
public static Object checkFail(String msg){
Object result = build(500, msg, null);
return result;
} /**检查失败的响应 500,msg,data**/
public static Object checkFail(String msg,Object data){
Object result = build(500, msg, data);
return result;
} /**返回转换后的json对象(自定义状态码,信息,data)**/
public static Object build(Integer status, String msg, Object data){
HashMap<String,Object> map = new HashMap<>();
map.put("status", status);
map.put("msg", msg);
map.put("data", data);
Object json = com.alibaba.fastjson.JSONObject.toJSON(map);
return json;
} }
因为这是个工具类,所有方法都是静态方法,所以,写出输出流需要自己手动写出来,下边就简单写一个需要放在action类中的小方法,配合以上工具类食用风味更佳~!
/**以response形式将对象写回客户端,推荐传入JSON对象**/
public void writeOut(Object obj){
response.setContentType("text/json;charset=utf-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
writer.println(obj);
} catch (IOException e) {
e.printStackTrace();
} finally{
writer.flush();
writer.close();
}
}
于是在action中只需要引入最上边提到的工具类,然后用这个方法写回给客户端就好了,so简单~
//写出成功
writeOut(JsonResult.checkOK();
writeOut(JsonResult.checkOK("输出成功");
writeOut(JsonResult.checkOK("输出成功",Object o);
writeOut(JsonResult.checkOK(Object o); //这个是唯一不同格式的
//写出失败
writeOut(JsonResult.checkFail();
writeOut(JsonResult.checkFail("输出失败");
writeOut(JsonResult.checkFail("输出失败",Object o);
//自定义
writeOut(JsonResult.build(400,"你好",Object o);
如果有更好的代码欢迎交流
【自制工具类】struts返回json数据包装格式类的更多相关文章
- struts返回json数据
想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...
- spring mvc 返回json数据的四种方式
一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...
- struts框架返回json数据
设置返回result类型为json格式 <package name="cn.konngo.action" namespace="/" extends=&q ...
- 【Struts2】SSH如何返回JSON数据
在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就 ...
- 深入了解Struts2返回JSON数据的原理
首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...
- J2EE Web开发入门—通过action是以传统方式返回JSON数据
关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...
- Struts2返回Json数据(使用Struts2插件)
这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...
- (转)Struts2返回JSON数据的具体应用范例
转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
- Struts2返回JSON数据的具体应用范例
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...
随机推荐
- vue2.0的瀑布流组件-使用说明
做一个小项目,需要瀑布流,就选他了,先看看效果 使用瀑布流布局组件:vue-waterfall-easy 下载引入: 方式一:直接从git上复制组件的完整代码,引入vue组件文件即可 import v ...
- java sql
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import ja ...
- Xamarin.Android中实现延迟跳转
http://blog.csdn.net/candlewu/article/details/52953228 方法一: 使用Handler().PostDelayed 延迟启动 new Handler ...
- 菜鸟之旅——初识.NET
入坑.Net 也已经两年多了,既然在微软.Net 体系下混,对.Net 体系也需要了解一下,当然这些知识也都是查阅资料都能够查到的,这里主要是对自己所学的整理,况且最近的学习有些闭门造车的味道,现在想 ...
- TypeScript体验
TypeScript 在线玩 http://www.typescriptlang.org/play/index.html ts最终编译成js 网站最终还是要引用js. ts面向对象的感念更加直观, ...
- 【状压DP】poj3254 Corn Fields
题意: 一块n*m的田,1表示这个地方可以种植,0代表这个地方不能种植.植物种植还必须满足两株植物不能相邻(横竖都不行).问共有几种种植方法,而且当什么都不种时认为是一种方法. 解题思路: 种植用1表 ...
- Nginx配置反向代理
Nginx可做web服务器,也可做负载均衡使用. 反向代理:应用服务器不直接提供服务,通过nginx服务器处理请求, 转发到代理服务器(Tomcat,Nginx,Apache等) 获取响应交给客户端, ...
- mysql foreign key(外键) 说明与实例
一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整性,关连性 ...
- MariaDB日志审计 帮你揪出内个干坏事儿的小子
Part1:谁干的? 做DBA的经常会遇到,一些表被误操作了,被truncate.被delete.甚至被drop.引起这方面的原因大多数都是因为人为+权限问题导致的.一些公共账户,例如ceshi账户, ...
- 云服务器 远程mysql 无法连接
问题:mysql不管是用免安装版的,还是用直接安装的,还是用phpStudy直接发布的mysql服务.都只能用localhost登录,不能用服务器的ip进行远程访问 遇到这个问题.按照网上大家介绍的方 ...