簡體   English   中英

Spring3 MultiActionController方法-處理程序解析。 MapAndView與字符串

[英]Spring3 MultiActionController method - handler resolve. MapAndView vs String

首先,一些上下文:

web.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>

我的問題,為什么返回String時調用/ 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,是否有其他命名約定?

您正在使用MultiActionController ,它對方法命名約定和簽名有非常嚴格的限制。

但是,您根本不應該使用MultiActionController ,因為它已過時且已過時。 按照Spring手冊中的描述編寫控制器,即使用@Controller@RequestMapping ,那么您將獲得更加靈活的方法簽名。

如果您使用的是Spring 3.0,那么我將更喜歡使用注釋。

@Controller
@RequestMapping(value  = "/app")
public class ImportController {

    @RequestMapping(value="/importer/home")
    public ModelAndView view(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mav = new ModelAndView("importer.home");
        mav.addObject(new ExlFile());
        return mav;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM