java - ReSTLet 响应类型

标签 java web-services rest spring-mvc restlet

如何以所需格式返回 ReSTLet 响应? 我正在使用的方法:

@Get ("json")
public Address sendResponse(){
    Address add = getAddress();
    return add;
}

现在我必须明确地将 java 对象转换为 json 字符串作为对浏览器的响应。难道不能由ReSTLet框架自己照顾吗?

Spring MVC的Restful实现可以做到。我也在 ReSTLet 中寻找类似的实现。

最佳答案

事实上,使用 ReSTLet 有两种方法可以做到这一点:

  • 使用 JSON 表示的显式。如果您使用 org.json 中的对象,则为 JSONRepresentation;如果您需要 JSON/对象映射,则为 JacksonRepresentation。您可以在下面找到一个示例:

    @Get ("json")
    public Representation sendResponse(){
        Address add = getAddress();
        return new JacksonRepresentation<Address>(address);
    }
    
  • 使用转换器的隐式。在这种情况下,它是您提供的代码。您的类路径中必须有一个合适的转换器,例如 org.reSTLet.ext.jackson 扩展提供的转换器。它将检测到需要返回 JSON 内容并将您的地址对象隐式转换为 JSON 内容。

只是为了提示,在 GET 注释中指定的 json 媒体告诉 ReSTLet 在 application/json 被定义为带有 accept header 的连接(内容协商)时使用关联的方法来处理请求。

希望对你有帮助。 蒂埃里

关于java - ReSTLet 响应类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670525/

相关文章:

java - Vaadin 模态窗口 : How To Get Scrollbars On The Parent View

android - 一种从mysql获取信息到Android应用程序的方法

java - POST 到 Jersey REST 服务时出现错误 415 不支持的媒体类型

WCF 契约(Contract)和命名空间?

java - 使用 AJAX、JAVA WS-RS @Post 发送 Xml

不调用 Spring Data Rest @HandleBeforeCreate 方法

java - 如何使用 JPA/Hibernate 持久保存声明具有几个整数的固定大小数组的字段的实体

java - 使用嵌入的 Spring Boot Jetty 时出现 JSTL 错误

java - 为什么在 setOnClickListener() 中使用 (this)

c# - 自动部署,Global.asax : Could not load type Namespace. Global