使用它
JAX-RS帕拉姆转换器 - 编译时错误,这是我的PARAM转换器使用它
import org.springframework.data.domain.Sort; public class MyParamConverter implements ParamConverter<Sort> {
@Override
public Sort fromString(String s){
return new Sort(new Sort.Order(Sort.Direction.ASC, "ds"));
}
@Override
public String toString(Sort mo){
return mo.toString();
}
}
这是我paramconverter提供商
@Provider public class MyParamConverterProvider implements ParamConverterProvider {
@Override
public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, Annotation[] annotations) {
if(rawType.equals(Sort.class)){
return (ParamConverter<T>) new MyParamConverter();
}
return null;
}
我想在我的API使用,因为
@GET @Path("/")
Response read(@QueryParam("sort") Sort order);
我期待的jax映射字符串,我通过我的url例如&sort="asc"
来排序对象。但是我得到编译时错误have a registered implementation of paramconverter provider
。当我通过查询参数&sort="somethung"
时,我需要找到一种方法,通过使用自定义注释或使用Param Converter
自动转换为SORT
。
回答:
参考您的意见,尝试注册您的供应商,如:
@ApplicationPath("/") public class MyApplication extends ResourceConfig {
@Override
public Set<Class<?>> getClasses() {
final Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(MyParamConverterProvider.class);
return classes;
}
}
或者,如果您有您注册的供应商使用泽西
@ApplicationPath("/") public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("my.package");
// or without package scanning
register(MyParamConverterProvider.class);
}
}
以上是 使用它 的全部内容, 来源链接: utcz.com/qa/259850.html