如何在春季mvcrest服务?
我正在尝试制作简单的rest服务,这是由移动开发人员使用的每个人使用的示例。所以我需要向每个人发送静态数据。我正在尝试发送静态数据。
{ name:"abcd" }
换句话说,如果有人像我这样点击我的系统http://192.168.12.61:8080/springfirst/hello 。那么用户就会超过json。
我这样做是为了制作http://www.programming-free.com/2014/03/spring-mvc-40-restful-web-service-json.html
我按照这一步
- 下载这些jar文件( – jackson-annotations-xxxjar – jackson-core-xxxjar – jackson-databind-xxxjar)并包含在lib文件夹中。
这是我的代码web.xml
Spring MVC Application HelloWeb org.springframework.web.servlet.DispatcherServlet HelloWeb /
你好,servelts.xml
controller.js
package com.tutorialspoint; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/hello") public class HelloController{ @RequestMapping( method = RequestMethod.GET,headers="Accept=application/json") public String printHello(ModelMap model) { return "abcd"; } }
你有配置问题:
- 如果在web.xml中使用out context配置文件路径注册DispatcherServlet,则应根据servletName-servlet.xml命名上下文文件。
因此将hello-servelts.xml
重命名为HelloWeb-servlet.xml
。
并在控制器处理程序方法中添加@ResponseBody以返回JSON,如:
@RequestMapping( method = RequestMethod.GET,headers="Accept=application/json") public @ResponseBody Map printHello(ModelMap model) { Map json = new HashMap(); json.put("name", "abcd"); return json; }
这是使用ContentNegotiatingViewResolver的工作应用程序。
如何在春季mvcrest服务?
Ans,有不同的方法可供选择。 我在下面列出了一些:
- 要从HTTP请求或响应中读取/写入JSON数据,您应该使用
@RequestBody
从HTTP请求读取,并使用@ResponseBody
将对象作为JSON写入HTTP响应。 - Spring提供了
ContentNegotiatingViewResolver
,您可以使用它来通过请求URL扩展或请求ACCEPT标头值来解析视图。 例如,如果URL是/view.html,那么它将返回一个具有text/html
内容类型的视图。 同样,您可以将其配置为返回JSON。
JSON View的ContentNegotiatingViewResolver配置如下所示:
注意: Jackson mapper或任何其他映射器应该在buildpath上可用,以便进行JSON序列化和反序列化。
如果您使用Maven,请在pom.xml中确认此依赖项:
com.fasterxml.jackson.core jackson-databind 2.4.3
还请参见 :
- 如何在spring-mvc中将对象从控制器返回到ajax
- spring mvc 3.1的新function
您可以按照本指南这是一个官方文档,并使用spring-boot
,这将很容易开始编写服务。
你rest服务会是这样的
@RestController @RequestMapping("/hello") public class HelloController{ @RequestMapping( method = RequestMethod.GET,headers="Accept=application/json") @ResponseBody public String printHello() { return "abcd"; } }