JsonDataModelAndView.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package cn.com.lzt.common.view;
  2. import com.alibaba.fastjson.JSON;
  3. import com.google.gson.Gson;
  4. import com.google.gson.GsonBuilder;
  5. import org.springframework.web.servlet.ModelAndView;
  6. import org.springframework.web.servlet.View;
  7. import javax.servlet.ServletOutputStream;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.util.Map;
  11. public class JsonDataModelAndView extends ModelAndView {
  12. private Object objectJson;
  13. private static Gson gson = new Gson();
  14. public JsonDataModelAndView(Object objectJson){
  15. super();
  16. this.objectJson= objectJson;
  17. }
  18. @Override
  19. public View getView(){
  20. return new View() {
  21. @Override
  22. public String getContentType() {
  23. return "application/json;charset=utf-8";
  24. }
  25. @Override
  26. public void render(Map<String, ?> map, HttpServletRequest httpServletRequest,
  27. HttpServletResponse httpServletResponse) throws Exception {
  28. httpServletResponse.setContentType(getContentType());
  29. ServletOutputStream out = httpServletResponse.getOutputStream();
  30. try
  31. {
  32. if(objectJson != null)
  33. {
  34. String json = JSON.toJSONString(objectJson);
  35. byte[] bytes = json.getBytes("utf-8");
  36. out.write(bytes);
  37. out.flush();
  38. }
  39. }finally
  40. {
  41. if(out != null)
  42. {
  43. out.close();
  44. }
  45. }
  46. }
  47. };
  48. }
  49. }