Spring mvc Spring控制器-手动从Servlet请求填充DTO
在SpringController中,我想为不同的HTML表单提交调用相同的方法 因此,将HttpServletRequest作为请求主体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
@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个大的我可以处理整个世界的方法。。。