ajax 返回前台数据

来源:互联网 发布:mac桌面壁纸下载网站 编辑:程序博客网 时间:2024/05/20 01:46

之前项目开发中,前台访问后台,后台往前台返回值,都是用@RequestBody 注解往前台返回值,并且返回数据类型不一样,方法的定义返回类型也不一样。后面用到了直接用ajax返回值到前台。觉得很方便,在此做下记录

package com.magingunion.framework.util;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;public class AJAXUtil {    /**     * 返回前台数据(任何类型都可以,String、list等)     *      * @param response     * @param jsonStr     */    public static void success(HttpServletResponse response, String jsonStr) {        response.setContentType("text/html");        response.setCharacterEncoding("UTF-8");        PrintWriter out = null;        try {            out = response.getWriter();            out.write(jsonStr);            out.flush();            out.close();        } catch (IOException e) {            e.printStackTrace();        } finally{            if(out!=null) out.close();        }    }    /**     * 返回失败状态     *      * @param response     * @param jsonStr     */    public static void failure(HttpServletResponse response, String jsonStr) {        response.setContentType("text/html");        response.setCharacterEncoding("UTF-8");        response.setStatus(500);        PrintWriter out = null;        try {            out = response.getWriter();            out.write(jsonStr);            out.flush();            out.close();        } catch (IOException ex) {            ex.printStackTrace();        } finally{            if(out!=null) out.close();        }    }    /**     * 返回json格式的msg     *      * @param bool      * @param response Http response     */    public static void handleSuccess(HttpServletResponse response, Boolean bool) {        PrintWriter out = null;        String jsonObj = null;        try {            response.setContentType("text/html");            response.setCharacterEncoding("UTF-8");            out = response.getWriter();            if (bool)                jsonObj = "{\"msg\":\"SUCCESS\"}";            else                jsonObj = "{\"msg\":\"FAIL\"}";        } catch (Exception e) {            e.printStackTrace();            jsonObj = "{\"msg\":\"FAIL\"}";        }        out.write(jsonObj.toString());        out.flush();        out.close();    }    /**     * 返回自定义的msg     *      * @param bool      * @param response Http response     * @param msg      */    public static void handleSuccess(HttpServletResponse response,            Boolean bool, String msg) {        PrintWriter out = null;        String jsonObj = null;        try {            response.setContentType("text/html");            response.setCharacterEncoding("UTF-8");            out = response.getWriter();            if (bool)                jsonObj = "{\"msg\":\"SUCCESS\",";            else                jsonObj = "{\"msg\":\"FAIL\",";            jsonObj = jsonObj + msg + "}";        } catch (Exception e) {            e.printStackTrace();            jsonObj = "{\"msg\":\"FAIL\"}";        }        out.write(jsonObj.toString());        out.flush();        out.close();    }}

在方法中,统一用void修饰。并且不需要使用@RequestBody注解,如果返回的是具体数据则用这个返回

AJAXUtil.success(response, JSONObject.toJSONString(data));

如果返回的是成功或者失败,则用

AJAXUtil.handleSuccess(response, true);AJAXUtil.handleSuccess(response, false);
原创粉丝点击