【发布时间】:2013-12-07 14:51:08
【问题描述】:
我正在寻找有关 Spring Controller 定义的帮助。我尝试了几次谷歌,但没有找到如何实现我的目标的直接解释。
我想定义通用控制器:
public abstract class AbstractController<E extends AbstractEntity,
P extends IRequestParams> {
@RequestMapping(method = GET)
public @ResponseBody
abstract List<E> list(@RequestParam P params);
}
之后我会声明如下控制器:
public class CatController
extends AbstractController<Cat, ICatSearchParams> {
@RequestMapping(method = GET)
public @ResponseBody
List<Cat> list(@RequestParam ICatSearchParams params) {
// do something and return list of results
}
}
我有以通用方式将@RequestParam Map<String, String[]> params 转换为IRequestParams 的服务。我可以通过 Spring 解析泛型类型。
但我不知道如何插入 Spring 以自动将请求参数转换为我的参数接口并在方法调用中使用它。我希望这种转换在配置后对开发人员是透明的。
提前感谢您的帮助!
【问题讨论】:
-
我不确定完整的构造最终是否会起作用,因为我不知道spring
Converter或WebArgrumentResolver是否可以正确解析泛型类型。
标签: java spring generics spring-mvc