zoukankan      html  css  js  c++  java
  • 在Spring MVC Controller的同一个方法中,根据App还是WEB返回JSON或者HTML视图。

    如有高见,欢迎交流!

    最近在做一个web的项目,web版已经开发完毕,现在正在进行手机APP的开发,开发中遇到一个问题:

    就是web版和app版都有登录功能,本想着是分别走不同的URL,实际开发的时候才发现,由于web版采用的是shiro框架,URL不能改变(至少是自己不知道该怎么配置)

    因此只能是采取走同一个URL的方案了。

    问题来了,web版的该方法的返回值是HTML视图,如何在此方法中返回json字符串是需要解决的问题,上网搜寻了一下,果然有高人。

    解决案:

    对于APP端的请求需要使用MappingJacksonHttpMessageConverter将model转成JSON,然后写入HttpServletResponse返回。

    转换类:JsonView

     1 public class JsonView {
     2 
     3     public static ModelAndView Render(Object model, HttpServletResponse response)
     4     {
     5         MappingJacksonHttpMessageConverter jsonConverter = new MappingJacksonHttpMessageConverter();
     6 
     7         MediaType jsonMimeType = MediaType.APPLICATION_JSON;
     8 
     9 
    10         try {
    11             jsonConverter.write(model, jsonMimeType, new ServletServerHttpResponse(response));
    12         } catch (HttpMessageNotWritableException e) {
    13             e.printStackTrace();
    14         } catch (IOException e) {
    15             e.printStackTrace();
    16         }
    17 
    18         return null;
    19     }
    20 }

    Controler类:

    @RequestMapping(value="/login", method=RequestMethod.POST)
    public ModelAndView index(HttpServletRequest request, HttpServletResponse response, ModelMap model) {
    
        ModelAndView mv = new ModelAndView("LOGIN");
        //web端登陆
        if(web)
        {
            return mv;
        }
        //APP端登陆
        else
        {
            mv.addObject("status","success");
            return JsonView.Render(mv, response);
        }    
    }

    参照:http://stackoverflow.com/questions/4917329/return-json-or-view-from-spring-mvc-controller

  • 相关阅读:
    TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory (原)
    linux的查找命令 find whereis locate
    windows下cmd无法使用telnet命令解决方法 (原)
    CDN和智能DNS原理和应用 (原)
    面试:sql语句-1-基础查询
    面试问题:对框架的理解
    Hub,bridge,switch and router的区别
    If you ever have a broken heart
    virt-viewer的简单使用
    各种虚拟化镜像文件格式
  • 原文地址:https://www.cnblogs.com/yddzyy/p/5581194.html
Copyright © 2011-2022 走看看