有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您正在使用MultiActionController,它对方法命名约定和签名有非常严格的限制

    然而,你根本不应该使用MultiActionController,它已经过时了,不推荐使用。按照Spring手册中的描述编写控制器,即使用@Controller@RequestMapping,那么您可以获得更灵活的方法签名