JsonMessageView工具类

摘要:
前言工具类示例:前端发送ajax请求springmvc控制层接收请求并处理请求前言:在工作中使用springmvcweb框架时常常会发送一个ajax请求,我们在控制层接收到请求并处理完后返回一个json数据到前端,这里提供一个工具类实现接口消息视图,用于返回指定格式的json数据。");//设置返回的消息内容//json.setContent;//如果需要返回数据内容则设置}}catch{e.printStackTrace();json.setCode(-10);json.setMessage;returnjson;}returnjson;}
前言
工具类
示例:
前端发送ajax请求
springmvc控制层接收请求并处理请求
前言:
在工作中使用springmvc web框架时常常会发送一个ajax请求,我们在控制层接收到请求并处理完后返回一个json数据到前端,这里提供一个工具类实现接口消息视图(View),用于返回指定格式的json数据。
importjava.io.IOException;
importjava.io.StringWriter;
importjava.io.UnsupportedEncodingException;
importjava.util.Map;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.codehaus.jackson.JsonGenerationException;
importorg.codehaus.jackson.map.JsonMappingException;
importorg.codehaus.jackson.map.ObjectMapper;importorg.springframework.web.servlet.View;
/*** 用于输出指定格式的json消息,接口消息视图
 * @author* 2017年7月18日
 * @version1.0
 */
public class JSONMessageView implementsView {

    //消息码
    private intcode;
    //消息内容
    privateString message;
    //数据内容
    privateObject content;
    //返回数据内容类型
    private String contentType = "application/json";

    //无参构造
    publicJSONMessageView() {
    }
    //有参构造
    public JSONMessageView(intcode, String message, Object content) {
        super();
        this.code =code;
        this.message =message;
        this.content =content;
    }
    //设置返回的字符编码与数据内容、数据内容类型
@Override
    public void render(Map<String, ?> arg0, HttpServletRequest arg1,HttpServletResponse response) throwsException {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", getContentType());
        response.getWriter().write(toString());        
    }
    //设置json格式数据
@Override
    publicString toString(){
        ObjectMapper mapper = newObjectMapper();
        StringWriter sw = newStringWriter();
        try{
            mapper.writeValue(sw, this);
        } catch(JsonGenerationException e) {
            e.printStackTrace();
        } catch(JsonMappingException e) {
            e.printStackTrace();
        } catch(IOException e) {
            e.printStackTrace();
        }
        returnsw.toString();
    }
    
    public static void main(String[] args) throwsUnsupportedEncodingException {
        System.out.println(new JSONMessageView(-1, "错误", ""));
    }
    //getter/setter方法
    public intgetCode() {
        returncode;
    }
    public void setCode(intcode) {
        this.code =code;
    }
    publicString getMessage() {
        returnmessage;
    }
    public voidsetMessage(String message) {
        this.message =message;
    }
    publicObject getContent() {
        returncontent;
    }
    public voidsetContent(Object content) {
        this.content =content;
    }
    publicString getContentType() {        
        returncontentType;
    }
    public voidsetContentType(String contentType) {
        this.contentType =contentType;
    }    
}
示例:
前端发送ajax请求:
$.ajax({
    url:"${request.contextPath}/merchant/coupon/addCoupon.html",
    type:"post",
    data:{"":,},
    dataType:"json",
    success:function(data){
        if(data.code==0){
            $("#addAcount").hide();//隐藏窗口
alert(data.message); //弹出返回消息内容
//data.content//返回的数据内容 location.reload();
//刷新页面 }else{ alert(data.message); } }, error:function(){ alert(data.message); } });
springmvc控制层接收请求并处理请求:
/*** 添加优惠券
     */@RequestMapping(value="/addCoupon.html",produces="application/json; charset=UTF-8")
    publicJSONMessageView addCoupon(DisCoupon disCoupon,HttpServletRequest request){
        JSONMessageView json = new JSONMessageView(-1, "保存失败", null);
        try{                                
                //...省略具体处理细节
disCouponService.saveOrUpdate(disCoupon);
                json.setCode(0);      //设置返回消息码  0表示成功,非0表示失败
                json.setMessage("保存成功!");    //设置返回的消息内容
  //json.setContent(disCoupon);         //如果需要返回数据内容则设置
}
        }catch(Exception e) {
            e.printStackTrace();
            json.setCode(-10);
            json.setMessage("保存失败");
            returnjson;
        }
        returnjson;    
    }

免责声明:文章转载自《JsonMessageView工具类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tar.xz如何解压:linux和windows下tar.xz解压命令介绍Qt 在Qwidget里添加控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Springboot项目集成JPush极光推送(Java SDK)

1.由于项目的需求,需要在Android APP上实现消息推送功能,所以引用了极光推送(官网:https://www.jiguang.cn/,  文档:http://docs.jiguang.cn/) 2.极光推送是经过考验的大规模app推送平台,极光推送目前每天推送消息数超过20亿条。 开发者集成SDK后,可以通过调用API推送消息。同时,极光推送提供可...

websocket快速搭建(node+websocket)

移动互联时代,消息的推送越来越重要,其中使用websocket的是最方便的 如何使用websocket 快速搭建一个自己的消息推送机制呢 这里就简单的使用node+html页面来实现websocket的消息传送 node篇 先写一个监听服务的文件,这里取名server.js(ws模块需要自己去安装, 命令是 npm i ws) const WebSocke...

消息推送服务

APM.Server 消息推送服务的实现 消息推送服务 服务器推送目前流行就是私信、发布/订阅等模式,基本上都是基于会话映射,消息对列等技术实现的;高性能、分布式可以如下解决:会话映射可采用redis cluster等技术实现,消息对列可使用kafka等分布式消息队列方案实现。APM.Server基于简单 1 static Concur...

搭建一套完整的ELK系统

ELK日志收集系统介绍   一  简单介绍             ELK部署搭建有很多成型的方案,这里推荐一种比较中规中矩的方案,它整合了logstash比较消耗资源以及当服务端临时宕机的时候出现数据丢失的问题,主要由filebeat+redis+logstash+elasticsearch+kibana构成,在每个需要收集日志的机器上面下发filebe...

网络协议和管理

网络的特征 速度 成本 安全性 可用性 可扩展性 可靠性 拓扑 物理拓扑分类 OSI七层模型(OSI System Interconnection) 物理层:二进制传输 数据链路层:访问介质 网络层:数据传输 传输层:端到端连接 会话层:主机间通信 表示层:数据表示 应用层:网络进程访问应用层...

RabbitMQ 运转流程

生产者发送消息 1、生产者连接到 RabbitMQ Broker,建立一个连接(Connection),开启一个信道(Channel) 2、生产者声明一个交换器,并设置相关属性,比如交换机类型、是否持久化等 3、生产者声明一个队列并设置相关属性,比如是否排他、是否持久化、是否自动删除等 4、生产者通过路由键将交换器和队列绑定起来 5、生产者发送消息至 Ra...