可以当成一个通用模版,在项目中使用
1. 基类controller
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
*
* 功能描述: 基类controller
*/
public class BaseController {
static Logger log = LoggerFactory.getLogger(BaseController.class);
public static final String VIEW = "view";
public static final String LIST = "list";
public static final String STATUS = "status";
public static final String WARN = "warn";
public static final String SUCCESS = "success";
public static final String ERROR = "error";
public static final String MESSAGE = "message";
public static final String MESSAGES = "messages";
public static final String CONTENT = "content";
public static Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
/**
* AJAX输出,返回null
*
* @param content
* @param type
* @return
*/
public String ajax(HttpServletResponse response, String content, String type) {
try {
response.setContentType(type + ";charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.getWriter().write(content);
response.getWriter().flush();
} catch (IOException e) {
log.error("IOException:", e);
}
return null;
}
/**
* AJAX输出文本,返回null
*
* @param text
* @return
*/
public String ajaxText(HttpServletResponse response, String text) {
return ajax(response,text, "text/plain");
}
/**
* AJAX输出HTML,返回null
*
* @param html
* @return
*/
public String ajaxHtml(HttpServletResponse response,String html) {
return ajax(response,html, "text/html");
}
/**
* AJAX输出XML,返回null
*
* @param xml
* @return
*/
public String ajaxXml(HttpServletResponse response,String xml) {
return ajax(response,xml, "text/xml");
}
/**
* 根据字符串输出JSON,返回null
*
* @param jsonString
* @return
*/
public String ajaxJson(HttpServletResponse response,String jsonString) {
return ajax(response,jsonString, "text/html");
}
/**
* 根据Map输出JSON,返回null
*
* @param jsonMap
* @return
*/
public String ajaxJson(HttpServletResponse response, Map<String, String> jsonMap) {
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON警告消息,返回null
*
* @param message
* @return
*/
public String ajaxJsonWarnMessage(HttpServletResponse response, String message) {
Map<String, String> jsonMap = new HashMap<String, String>();
jsonMap.put(STATUS, WARN);
jsonMap.put(MESSAGE, message);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON警告消息,返回null
*
* @param messages
* @return
*/
public String ajaxJsonWarnMessages(HttpServletResponse response,List<String> messages) {
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put(STATUS, WARN);
jsonMap.put(MESSAGES, messages);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON成功消息,返回null
*
* @param message
* @return
*/
public String ajaxJsonSuccessMessage(HttpServletResponse response,String message) {
Map<String, String> jsonMap = new HashMap<String, String>();
jsonMap.put(STATUS, SUCCESS);
jsonMap.put(MESSAGE, message);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON成功消息,返回null
*
* @param messages
* @return
*/
public String ajaxJsonSuccessMessages(HttpServletResponse response,List<String> messages) {
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put(STATUS, SUCCESS);
jsonMap.put(MESSAGES, messages);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON错误消息,返回null
*
* @param message
* @return
*/
public String ajaxJsonErrorMessage(HttpServletResponse response,String message) {
Map<String, String> jsonMap = new HashMap<String, String>();
jsonMap.put(STATUS, ERROR);
jsonMap.put(MESSAGE, message);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 输出JSON错误消息,返回null
*
* @param messages
* @return
*/
public String ajaxJsonErrorMessages(HttpServletResponse response,List<String> messages) {
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put(STATUS, ERROR);
jsonMap.put(MESSAGES, messages);
return ajax(response,gson.toJson(jsonMap), "text/html");
}
/**
* 设置页面不缓存
*/
public void setResponseNoCache(HttpServletResponse response) {
response.setHeader("progma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
}
}
2. 继承基类
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import com.suning.framework.web.controller.BaseController;
import utils.JsonUtil;
public class DefaultBaseController extends BaseController{
public final static String EVENT_CODE = "eventCode";
public final static String PAGE_INDEX = "pageIndex";
public final static String PAGE_SIZE = "pageSize";
public final static String ID = "id";
/**
* 功能描述: <br>
* 写入返回信息
*
* @param response
* @param strData
*/
public void writeResponse(HttpServletResponse response, String strData) {
if (StringUtils.isBlank(strData)) {
return;
}
super.ajaxHtml(response, strData);
}
public void writeResponse(HttpServletResponse response, Object obj) {
if (null == obj) {
return;
}
writeResponse(response, JsonUtil.objectToJson(obj));
}
/**
* 功能描述: <br>
* 写入返回信息
*
* @param response
* @param map
*/
public void writeResponseMap(HttpServletResponse response, Map<String, ? extends Object> map) {
if (null == map || map.size() == 0) {
return;
}
super.ajax(response,gson.toJson(map), "text/html");;
}
/**
* 功能描述: <br>
* 将key value 转化为json
*
* @param key
* @param value
* @param keyValue
* @return
*/
public String keyValueToJson(String key, String value, String...keyValue) {
Map<String, Object> map = new HashMap<String, Object>();
map.put(key, value);
for (int i = 0, size = keyValue.length; i < size; i = i + 2) {
map.put(keyValue[i], keyValue[i + 1]);
}
return JsonUtil.objectToJson(map);
}
}
- 工具类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* JSON tool
*
*/
public class JsonUtil {
public static String objectToJson(Object obj) {
return JSON.toJSONString(obj);
}
public static String objectToJsonWithDateFormat(Object obj, String timeFormat, SerializerFeature serializerFeature) {
return JSON.toJSONStringWithDateFormat(obj, timeFormat, serializerFeature);
}
public static <T> List<T> jsonToList(String jsonStr, Class<T> clazz) {
return JSON.parseArray(jsonStr, clazz);
}
public static Map<String, Object> jsonToMap(String jsonStr) {
return JSON.parseObject(jsonStr);
}
public static <T> T jsonToObject(String jsonStr, Class<T> clazz) {
return JSON.parseObject(jsonStr, clazz);
}
@SuppressWarnings(value={"rawtypes"})
public static <T> List mapKeyGetList(Map map, String key, Class<T> clazz) {
JSONArray arr = (JSONArray)map.get(key);
return JSON.parseArray(arr.toString(), clazz);
}
@SuppressWarnings(value={"rawtypes"})
public static Map[] mapKeyGetMap(Map map, String key) {
List<Map> list = mapKeyGetList(map, key, Map.class);
return list.toArray(new HashMap[list.size()]);
}
}
3.Controller类中使用
继承DefaultBaseController
调用super.xxx()