【问题标题】:Spring MVC either sending JSON or Redirecting to another pageSpring MVC 发送 JSON 或重定向到另一个页面
【发布时间】:2016-06-22 00:39:52
【问题描述】:

您好,我一直在为我的项目使用 Spring 3,我一直坚持下去。

if(ajax){

        User user = userTemplate.getUser(form.getCreator_id());
        int isPremium = user.getPremium();
        if ( isPremium == 1 ){
            Map<String,String> resultMap = new HashMap<String,String>();
            response.setHeader("Access-Control-Allow-Headers", "*");
            response.addHeader("Access-Control-Allow-Origin", "*");
            resultMap.put("result", "success");
            return new Gson().toJson(resultMap);
        }else{
            return "redirect:/f/redirectedUrl?url="+form.getWeb_page();
        }
    }

redirectedUrl 控制器仅用于重定向,但如果请求是 ajax 请求,那么我想将请求作为 json 响应。

我怎样才能做到这一点,谢谢。

编辑:我可以理解请求是否是 ajax。我的问题是如果是ajax我想响应json,如果不是那么我想重定向。

【问题讨论】:

标签: json spring spring-mvc


【解决方案1】:

在您的控制器中使用此代码来识别请求是否为 ajax,并基于此添加您的逻辑。

boolean ajax = "XMLHttpRequest".equals(
                      getRequest().getHeader("X-Requested-With"));

您可以从 httpRequest 对象的 header("X-Requested-With") 中决定。

【讨论】:

  • 不,如果请求来自 ajax,我无法理解。是的,我已经用过了。
【解决方案2】:
public ModelAndView getDetails(HttpServletRequest request, HttpServletRespone response) {


       if(ajax) {
        try {

new MappingJacksonHttpMessageConverter().write(object, MediaType.APPLICATION_JSON, new ServletServerHttpResponse(response));
        } catch(Exception e) {
              logger.error("Error when converting to json");
        }

        return null;
    } else {
        return new ModelAndView("viewName");
    }  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多