Spring MVC要么发送JSON,要么重定向到另一个页面

时间:2016-03-08 07:06:00

标签: json spring spring-mvc

您好我一直在使用Spring 3进行我的项目,我一直陷入困境。

 [HttpPost]
 public JsonResult SomeAction(string value1, string value2)
 {
  if(String.IsNullOrEmpty(value1) || String.IsNullOrEmpty(value2)) 
    { 
     throw new Exception("World not found."); 
    }
     return Json("something");
 }

redirectedUrl控制器只是用于重定向,但如果请求是ajax请求,那么我想以json的形式响应请求。

如何实现这一目标,谢谢。

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

2 个答案:

答案 0 :(得分:0)

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

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

您可以通过httpRequest对象的标题(“X-Requested-With”)来决定。

答案 1 :(得分:0)

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");
    }  
}