0

我有这两个控制器:

@Controller
@RequestMapping("/controllerPath")
public class MyController {

    @RequestMapping("/sayHello")
    public String sayHello(Model model){
        ...
    }

}

@Controller
@RequestMapping("/restControllerPath")
public class RestController {

    @RequestMapping (value = "importantObject", method = RequestMethod.GET)
    @ResponseBody
    public  VeryImportantlClass getInformation(){
        ...
    }
}

第一个控制器渲染到jsp

第二个返回 JSON。

因此我想为这个控制器有不同的配置

我在 web.xml 中写了以下内容:

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>mvc-dispatcher-rest</servlet-name>
        <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/controllerPath/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>mvc-dispatcher-rest</servlet-name>
        <url-pattern>/restControllerPath/*</url-pattern>
  </servlet-mapping>

当我从浏览器发送 http 请求时,我看到 404

如果我只对一个 servlet 使用这样的样式(如下):

<servlet-mapping>
            <servlet-name>mvc-dispatcher-rest</servlet-name>
                <url-pattern>/</url-pattern>
          </servlet-mapping>
  • 控制器方法调用,我看到了很好的结果。

如何使用第一种样式重写它?

4

1 回答 1

0

themvc-dispatcher和 themvc-dispatcher-rest都加载同一个 servlet。

所以,你不需要两个条目。只需使用单个条目并将根上下文映射/到 servlet。

于 2013-10-29T19:56:45.410 回答