RestEasy @RestForm 中的枚举?

问题描述 投票:0回答:1

我有一个 JAX-RS 服务,可以处理多部分

PUT
操作,并使用
@RestForm
注释映射请求对象。
@RestForm
中的所有参数都已正确序列化/反序列化,并且我可以看到它们出现在我的 JAX-RS 端点方法中。 但是,当我向表单添加一个
Enum
属性时,它似乎没有正确映射。 当我
PUT
设置了此
Enum
值的请求时,我的 JAX-RS 端点将该值视为
null

我的表格非常简单,看起来像这样:

public class MyEnumForm {

@RestForm("paramA")
private String paramA = null;

@RestForm("paramB")
private String paramB = null;

@RestForm("enumParam")
private MyEnumType enumParam = null;

...snip...

}

我的 JAX-RS 端点方法看起来像这样......

@Path("/myendpoint")
@PUT
@Consumes({ MediaType.MULTIPART_FORM_DATA })
public Response testPut(@MultipartForm MyEnumForm) {

...snip...

}

我是否缺少表单类中

enum
的注释? 在这种情况下,我必须对
enum
类型做一些特别的事情吗?

java enums jax-rs quarkus resteasy
1个回答
0
投票

解决了! 问题是我的

enum
需要一个公共静态
fromString(String)
方法来将提供的
String
值转换为
Enum
实例。 添加后,RestEasy 会正确转换它。

© www.soinside.com 2019 - 2024. All rights reserved.