在企业的实际开发过程中,前后的的交互基本都有公司自己封装的统一方法,应为这样的话更便于代码的编写。维护,以及新手更容易上手,而且这样代码的风格更加的统一。
1.首先前后台交互的时候主要用到的都是JsonObject。
对于JsonObject的封装每个项目经理都有自己的封装思想,当然我也有自己的封装考虑;
第一个,前后台交互的工具类、主要用户action护着controller层:
思路:
传入一个map和一个response:
map:封住了数据信息
response:用于返回
package com.csy.util;
import java.io.PrintWriter;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
public class ResponseUtil {
static JSONObject result = new JSONObject();//返回前台的map
/**
* 页面输出
* @param response
* @param o
* @throws Exception
*/
public static void write(HttpServletResponse response,Map map)throws Exception{
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
setMapValue(map);
out.println(result.toString());
out.flush();
out.close();
}
/**
* 将值放入返回前台的map
* @param valueMap
*/
public static void setMapValue(Map valueMap){
Set<Object> keys = valueMap.keySet();
for(Object key:keys){
result.put(key, valueMap.get(key));
}
}
}
2.此方法主要用在service和controller层的数据交互
package com.csy.util;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class ReturnMap extends HashMap<Object, Object> {
private static final long serialVersionUID = 1L;
private final String messageKey = "message"; //错误消息
private final String errorKey = "error"; //表示是否错误
private final String successKey = "success"; //表示是否错误
private String message;
private boolean error = false; //默认不成功
private boolean success = true;//默认不成功
public ReturnMap(){
super();
}
/**
*
* @param valueMap 需要返回界面的Map
*/
public ReturnMap(Map valueMap){
super();
setMapValue(valueMap);
}
/**
*
* @param valueMap 需要返回界面的Map集合
* @param error 是否错误
* @param message 错误message
*/
public ReturnMap(Map valueMap, boolean error, String message){
super();
setError(error);
setMessage(message);
setMapValue(valueMap);
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
this.error = !success;
this.put(successKey, success);
this.put(errorKey, !success);
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
this.put(messageKey, message);
}
public boolean isError() {
return error;
}
public void setError(boolean error) {
this.error = error;
this.success = !error;
this.put(errorKey, error);
this.put(successKey, !error);
}
public void setMapValue(Map valueMap){
Set<Object> keys = valueMap.keySet();
for(Object key:keys){
this.put(key, valueMap.get(key));
}
}
}