我今天碰到了MultiActionController,但不确定在Spring documentation上它的用途是什么...它说

控制器实现,允许同一类处理多种请求类型。此类的子类可以使用以下形式的方法来处理几种不同类型的请求:

在另一个site上,他们说

它将多种请求处理方法聚合到单个控制器中,因此相关功能可以轻松保持在一起。

我仍然不了解与以下内容相比,更好地扩展MultiActionController还是与之不同?还是MultiActionController更旧于Spring的旧版?我觉得我有一些基本的误解...

@Controller
public class MyController {

    @RequestMapping("/SomePage.html")
    public ModelAndView epdReview(
        @RequestParam(value="sessionID", required=true) String sessionId,
        MyFormData form,
        HttpSession session,
            HttpServletRequest request){
        //....
    }

    @RequestMapping(value = "/newData.json", method = RequestMethod.POST)
    public @ResponseBody ValidationResponse process(Model model,
        @Valid SomeData formData, BindingResult result,
        HttpSession session) {
        //....
    }
}

最佳答案

是的,它是从Spring 2.0 MVC API中获得的,就像实现旧Controller Interface的任何事物一样。我在Spring Developer的网络上找不到任何关于为什么所有表亲都没有被弃用的信息。

我可以提供100%的纯粹推测,原因可能是人们可能拥有MethodNameResolver的完全有效的自定义实现,而这些行为无法用DefaultAnnotationMethodHandlerAdapter的行为来替代。因此,基于注释的配置不能为此类的每次合法使用提供100%的替代方案。

07-24 20:41