Him*_*dav 5 java rest jax-rs jersey dropwizard
如何接受自定义类型查询参数?
public String detail(@QueryParam("request") final MYRequest request) {
Run Code Online (Sandbox Code Playgroud)
上面的行在启动服务器时出错
jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
Run Code Online (Sandbox Code Playgroud)
Pau*_*tha 12
@QueryParam
关于可接受的注入类型,请查看文档.(这同样适用于所有其他@XxxParam
注释)
valueOf
或fromString
接受单个String参数的静态方法(例如,参见Integer.valueOf(String)
)List<T>
,Set<T>
或者SortedSet<T>
,T
满足2,3或4以上.生成的集合是只读的.这些要求的原因是该值以字符串形式出现.运行时需要知道如何将字符串转换为要注入的类型.异常的原因是启动时有初始资源模型验证.此验证检查以确保所有注射点都有效.它看到注入的类型MyRequest
不符合上述任何要求,并抛出异常.
基本上你有第2点和第3点,你需要自己解析字符串
public class MyRequest {
public static MyRequest fromString(string param) {
// 1. Parse string
// 2. Create MyRequest request;
return request;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到一个很好的例子ParamConverter
归档时间: |
|
查看次数: |
4002 次 |
最近记录: |