spring MVC之返回JSON

  1. spring MVC如何返回json呢?

    有两种方式:

    方式一:使用ModelAndView

    Java代码   收藏代码
    1. @ResponseBody  
    2.     @RequestMapping("/save")  
    3.     public ModelAndView save(SimpleMessage simpleMessage){  
    4.         //查询时可以使用 isNotNull  
    5.         if(!ValueWidget.isNullOrEmpty(simpleMessage)){  
    6.             try {  
    7.                 //把对象中空字符串改为null  
    8.                 ReflectHWUtils.convertEmpty2Null(simpleMessage);  
    9.             } catch (SecurityException e) {  
    10.                 e.printStackTrace();  
    11.             } catch (NoSuchFieldException e) {  
    12.                 e.printStackTrace();  
    13.             } catch (IllegalArgumentException e) {  
    14.                 e.printStackTrace();  
    15.             } catch (IllegalAccessException e) {  
    16.                 e.printStackTrace();  
    17.             }  
    18.         }  
    19.         simpleMessage.setCreateTime(TimeHWUtil.getCurrentTimestamp());  
    20.         simpleMessage.setHasReply(Constant2.SIMPLE_MESSAGE_HAS_REPLY_NOT_YET);  
    21.         this.simpleMessageDao.add(simpleMessage);  
    22.         Map map=new HashMap();  
    23.         map.put("result""success");  
    24.         return new ModelAndView(new MappingJacksonJsonView(),map);  
    25.     }  

     

     

    方式二:返回String

    Java代码   收藏代码
    1. /*** 
    2.      * {"fileName":"20141002125209_571slide4.jpg","path":"D:\\software\\eclipse\\workspace2\\demo_channel_terminal\\upload\\image\\20141002125209_571slide4.jpg"} 
    3.      * @param file 
    4.      * @param request 
    5.      * @param response 
    6.      * @return 
    7.      * @throws IOException 
    8.      */  
    9.     @ResponseBody  
    10.     @RequestMapping(value = "/upload")  
    11.     public String upload(  
    12.             @RequestParam(value = "image223", required = false) MultipartFile file,  
    13.             HttpServletRequest request, HttpServletResponse response)  
    14.             throws IOException {  
    15.         String content = null;  
    16.         Map map = new HashMap();  
    17.         if (ValueWidget.isNullOrEmpty(file)) {  
    18.             map.put("error""not specify file!!!");  
    19.         } else {  
    20.             System.out.println("request:" + request);// org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest@7063d827  
    21.             System.out.println("request:" + request.getClass().getSuperclass());  
    22.               
    23.             // // System.out.println("a:"+element+":$$");  
    24.             // break;  
    25.             // }  
    26.             String fileName = file.getOriginalFilename();// 上传的文件名  
    27.             fileName=fileName.replaceAll("[\\s]",   "");//IE中识别不了有空格的json  
    28.             // 保存到哪儿  
    29.             String finalFileName = TimeHWUtil.formatDateByPattern(TimeHWUtil  
    30.                     .getCurrentTimestamp(),"yyyyMMddHHmmss")+ "_"  
    31.                             + new Random().nextInt(1000) + fileName;  
    32.             File savedFile = getUploadedFilePath(request,  
    33.                     Constant2.UPLOAD_FOLDER_NAME + "/image", finalFileName,  
    34.                     Constant2.SRC_MAIN_WEBAPP);// "D:\\software\\eclipse\\workspace2\\demo_channel_terminal\\ upload\\pic\\ys4-1.jpg"  
    35.             System.out.println("[upload]savedFile:"  
    36.                     + savedFile.getAbsolutePath());  
    37.             // 保存  
    38.             try {  
    39.                 file.transferTo(savedFile);  
    40.             } catch (Exception e) {  
    41.                 e.printStackTrace();  
    42.             }  
    43.               
    44.             ObjectMapper mapper = new ObjectMapper();  
    45.               
    46.               
    47.   
    48.             map.put("fileName", finalFileName);  
    49.             map.put("path", savedFile.getAbsolutePath());  
    50.             try {  
    51.                 content = mapper.writeValueAsString(map);  
    52.                 System.out.println(content);  
    53.             } catch (JsonGenerationException e) {  
    54.                 e.printStackTrace();  
    55.             } catch (JsonMappingException e) {  
    56.                 e.printStackTrace();  
    57.             } catch (IOException e) {  
    58.                 e.printStackTrace();  
    59.             }  
    60. //          System.out.println("map:"+map);  
    61.         }  
    62.   
    63. /* 
    64.  * {"fileName":"20141002125209_571slide4.jpg","path":"D:\\software\\eclipse\\workspace2\\demo_channel_terminal\\upload\\image\\20141002125209_571slide4.jpg"} 
    65.  * */  
    66.         return content;  
    67.   
    68.     }  

     

    两种方式有什么区别呢?

    方式一:使用ModelAndView的contentType是"application/json"

    方式二:返回String的            contentType是"text/html"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值