Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring控制器-手动从Servlet请求填充DTO_Spring Mvc_Controller - Fatal编程技术网

Spring mvc Spring控制器-手动从Servlet请求填充DTO

Spring mvc Spring控制器-手动从Servlet请求填充DTO,spring-mvc,controller,Spring Mvc,Controller,在SpringController中,我想为不同的HTML表单提交调用相同的方法 因此,将HttpServletRequest作为请求主体 @RequestMapping(value = "/Search") public String doSearch(HttpServletRequest httpServletRequest, ModelMap map) { // Now, looking for something like this... if(req.getType.e

在SpringController中,我想为不同的HTML表单提交调用相同的方法 因此,将HttpServletRequest作为请求主体

@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作为方法参数

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

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

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

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

为什么?为什么不简单地创建多个方法并区分映射呢。如何确定要创建哪个对象?基于可以从请求参数派生的操作Id/类型,我真的不清楚您要做什么…然后使用该请求参数来区分映射。使用
params
属性进行区分,并让Spring进行垂荡提升。这完全可以,但是我们可以有一个通用的方法,因为我可以通过通用的方法来处理事情。为什么要手动完成所有事情?为什么不直接利用这个框架呢?但是,如果必须的话,请用
@RequestBody
注释一个字符串方法参数,不确定为什么要有1个大的我可以处理整个世界的方法。。。