在这里,我们将给大家分享关于从SpringMVCController返回JSON或View的知识,让您更了解springmvc怎么返回json的本质,同时也会涉及到如何更有效地ajax请求spring
在这里,我们将给大家分享关于从Spring MVC Controller返回JSON或View的知识,让您更了解springmvc怎么返回json的本质,同时也会涉及到如何更有效地ajax请求spring mvc Controller返回的json中的引号被转义、asp.net-mvc – 从扩展Apicontroller的MVC控制器返回Json、asp.net-mvc – 如何从MVC WEB API Controller返回JSON、ios5 – self.presentingViewController返回UITabBarController,而不是ViewModalViewController的视图控制器的内容。
本文目录一览:- 从Spring MVC Controller返回JSON或View(springmvc怎么返回json)
- ajax请求spring mvc Controller返回的json中的引号被转义
- asp.net-mvc – 从扩展Apicontroller的MVC控制器返回Json
- asp.net-mvc – 如何从MVC WEB API Controller返回JSON
- ios5 – self.presentingViewController返回UITabBarController,而不是ViewModalViewController的视图控制器
从Spring MVC Controller返回JSON或View(springmvc怎么返回json)
我想根据逻辑从Spring MVC控制器返回一个视图。如果发生错误,我想返回JSON,否则返回HTML视图。就像ASP.NET MVC
ActionResult一样,您可以在其中返回任何类型的视图,并且它将呈现结果,并且它不依赖于请求中发送的内容类型。我找不到任何示例。
答案1
小编典典我通过以下方法实现了这一目标。
@RequestMapping(value="/users", method=RequestMethod.POST)public Object index(@RequestBody SearchUsersViewModel model, HttpServletResponse response) { model.setList(userService.getUsers(model)); if(true) { return new ModelAndView("controls/tables/users", "model", model); } else { return JsonView.Render(model, response); } }
JsonView.java
public class JsonView { public static ModelAndView Render(Object model, HttpServletResponse response) { MappingJacksonHttpMessageConverter jsonConverter = new MappingJacksonHttpMessageConverter(); MediaType jsonMimeType = MediaType.APPLICATION_JSON; try { jsonConverter.write(model, jsonMimeType, new ServletServerHttpResponse(response)); } catch (HttpMessageNotWritableException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}
进行呼叫的JS函数
config.request = $ .ajax({ url : url, data : $.toJSON(def.data), type : def.type, dataType : def.dataType, processData : true, contentType : def.contentType, success : function(data) { try { var json = data; if (typeof data === "String" || typeof data == "string") { json = (eval(''('' + data + '')'')); } if (''object'' === typeof json) { if (json.Validation && json.Validation.Errors.length > 0) { $.each(json.Validation.Errors, function() { // Error Code Check }); // Error Callback if (typeof (def.errorCallback) == ''function'') { def.errorCallback(json); } } else { def.callback(data); } } else { def.callback(data); } } catch (e) { def.callback(data); // Hide Loading } }, error : function(data) { } });
ajax请求spring mvc Controller返回的json中的引号被转义
UserShowDto showDto = new UserShowDto(show); //JSONObject json = JSONObject.fromObject(showDto); map.put("status", SystemConstants.SYSTEM_SUCCESS); //JSONObject jo = new JSONObject(); //jo.put("name","mical"); map.put("showDto", showDto); System.out.println(map); //String str = "''hello''"; //System.out.println(json); return map;
success : function (result){
var str = JSON.stringify(result);
lert(str);
asp.net-mvc – 从扩展Apicontroller的MVC控制器返回Json
有没有其他方法来做我正在尝试做的事情(例如,返回不同的类型)?还是一个解决方法?
这是我的控制器代码:
public class SocialController : ApiController { public ActionResult Get(SocialRequest request) // or JsonResult? { JavaScriptSerializer js = new JavaScriptSerializer(); string jsontest = js.Serialize(request); // just serializing back and forth for testing return Json(jsontest,JsonRequestBehavior.AllowGet); } }
我收到的错误是“System.Web.Helpers.Json是一个类型,但像变量一样使用.”
我已经找到了以下相关的SO问题,但它并没有为我解决,如果有人可以详细说明我真的很感激它(并提出了重复点):
Why Json() Function is unknown
解决方法
[HttpGet] public IEnumerable<string> GetUsers(SocialRequest request) { return _applicationsService.GetUseRSS(request); }
asp.net-mvc – 如何从MVC WEB API Controller返回JSON
这还不够好,我需要能够务实地决定是否要返回json或xml.
互联网充斥着使用HttpResponseMessage< T>的过时示例,其在MVC 4中不再存在.
tokenResponse response = new tokenResponse(); response.something = "gfhgfh"; if(json) { return Request.CreateResponse(HttpStatusCode.OK,response,"application/json"); } else { return Request.CreateResponse(HttpStatusCode.OK,"application/xml"); }
如何更改上述代码以使其有效?
解决方法
public HttpResponseMessage Get() { tokenResponse response = new tokenResponse(); response.something = "gfhgfh"; if(json) { return Request.CreateResponse(HttpStatusCode.OK,Configuration.Formatters.JsonFormatter); } else { return Request.CreateResponse(HttpStatusCode.OK,Configuration.Formatters.XmlFormatter); } }
或者甚至更好,为了避免使用这种管道基础设施代码使控制器混乱,您还可以编写自定义媒体格式化程序并在其中执行此测试.
ios5 – self.presentingViewController返回UITabBarController,而不是ViewModalViewController的视图控制器
我在这里缺少什么?有一种可靠的方式来返回视图控制器提高模态吗?
谢谢.
解决方法
您会注意到,在iPhone上,模态视图不会取代您的视图控制器的视图;它代替整个界面,这意味着它将替换标签栏控制器的视图.这是因为标签栏控制器真的是呈现视图控制器.
我猜,你真的不应该将presentViewController:或presentModalViewController发送到由选项卡控制器包含的视图控制器.您应该将其发送到标签栏控制器.因此,该消息将路由到您的标签栏控制器.
所以没有什么有趣的事情将会发生与presentViewController的价值,除非你在iPad上.在iPad上,您可以使模态视图替换视图控制器的视图.为此,模态视图的modalPresentationStyle必须是UIModalPresentationCurrentContext.在这种情况下,它的presentationViewController实际上可以是“推动模态视图控制器”的视图.
我们今天的关于从Spring MVC Controller返回JSON或View和springmvc怎么返回json的分享就到这里,谢谢您的阅读,如果想了解更多关于ajax请求spring mvc Controller返回的json中的引号被转义、asp.net-mvc – 从扩展Apicontroller的MVC控制器返回Json、asp.net-mvc – 如何从MVC WEB API Controller返回JSON、ios5 – self.presentingViewController返回UITabBarController,而不是ViewModalViewController的视图控制器的相关信息,可以在本站进行搜索。
本文标签: