java - MessageBodyReader 支持 DTO 类吗?

标签 java spring-mvc grails groovy jax-rs

我想使用 Grails-jaxrs plugin实现自定义 MessageBodyReaderSupport从客户端读取 UserDto 类。

如何实现 UserDtoReader 才能获取 UserDto 的实例?

这是我的 UserDto 类:

public class UserDto {
    private String firstName;
    private String lastName;

    public UserDto() {
        firstName = "";
        lastName = "";
    }

    public UserDto(String firstName,
                   String lastName) {

        this.firstName = firstName;
        this.lastName = lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }


    @Override
    public String toString() {
        String s = " { User ";
        s += "id=" + id + " ";
        s += "firstName=" + firstName + " ";
        s += "lastName=" + lastName + " ";
        s += " User } ";
        return s;
    }
}

这是我的 UserDtoReader 类:

@Consumes("application/json")
class UserDtoReader extends MessageBodyReaderSupport<UserDto> {

    @Override
    public UserDto readFrom(MultivaluedMap<String, String> httpHeaders,
            InputStream entityStream) throws IOException,
            WebApplicationException {
        // TODO Auto-generated method stub
        return null;
    }
}

最佳答案

使用这个:

@Consumes("application/json")
class UserDtoReader extends MessageBodyReaderSupport<UserDto> {

    @Override
    public UserDto readFrom(MultivaluedMap<String, String> httpHeaders,
            InputStream entityStream) throws IOException,
            WebApplicationException {
        return new JsonSlurper().parse(new InputStreamReader(entityStream))
    }
}

关于java - MessageBodyReader 支持 DTO 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20301665/

相关文章:

grails - 为 Grails 应用程序构建漂亮 UI 的快速方法?

java - 为什么 java.lang.Object 不能被克隆?

Java 类用小写字母命名

javascript - 如何在模态弹出窗口中显示 JSP 页面?

java - 在 Spring Boot Controller 中接收 Collection/Iterable 作为参数

grails - 尝试将日期自动填充到文本字段中时,GSP日期解析错误

java - java 中 'object' 的默认值是多少?

facebook - Spring Social 从 facebook 获取数据

java - Spring MVC 使用 ContentNegotiationManagerFactoryBean 仅返回 json 406

grails - 如何在两个类(class)之间建立适当的关系