Spring Controller - 手动填写来自Servlet请求的DTO

时间:2013-09-16 12:48:02

标签: spring-mvc controller

在Spring控制器中,我想为不同的HTML - Forms提交调用相同的方法 所以,将HttpServletRequest作为RequestBody

@RequestMapping(value = "/Search")
public String doSearch(HttpServletRequest httpServletRequest, ModelMap map) {
    // Now, looking for something like this...
    if(req.getType.equals("x")
        //X x = SOME_SPRING_UTIL.convert(httpServletRequest,X.class)
    else
       // Y y = SOME_SPRING_UTIL.convert(httpServletRequest,Y.class)
}

我想通过Spring将请求参数转换为bean,因为它在转换时将Bean作为方法参数

1 个答案:

答案 0 :(得分:0)

使用params注释的@RequestMapping属性来区分请求映射映射。

@RequestMapping(value="/search", params={"actionId=Actionx"})
public String searchMethod1(X search) {}

@RequestMapping(value="/search", params={"actionId=ActionY"})
public String searchMethod2(Y search) {}

通过这种方式,您可以为每个不同的动作创建方法,让spring为您完成所有繁重的工作。