java Spring3 MultiActionController方法处理程序解析。MapAndView vs String
首先,有一点背景:
网络。xml:
我将所有/app/*请求与我的调度员匹配:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
我的问题是,为什么在返回字符串时调用/app/import/view有效:
控制器:
public class ImportController extends MultiActionController {
public String view(HttpServletRequest request, HttpServletResponse response) throws Exception
return "importer.home";
}
但在返回ModelAndView时不会:
public class ImportController extends MultiActionController {
public ModelAndView view(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("importer.home");
mav.addObject(new ExlFile());
return mav;
}
如果我们使用ModelAndView,是否有不同的命名约定
# 1 楼答案
您正在使用
MultiActionController
,它对方法命名约定和签名有非常严格的限制然而,你根本不应该使用
MultiActionController
,它已经过时了,不推荐使用。按照Spring手册中的描述编写控制器,即使用@Controller
和@RequestMapping
,那么您可以获得更灵活的方法签名