2013-10-29 71 views
0

我有這兩個控制器:如何正確映射我的servlet?

@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> 
  • 控制器方法調用,我看到很好的結果。

如何使用第一種方式重寫它?

+0

上一個問題發生了什麼變化? – 2013-10-29 19:51:33

+0

另一個配方。我希望clearler – gstackoverflow

+0

使用這兩個servlet的原因是什麼? – 2013-10-29 19:58:20

回答

0

mvc-dispatchermvc-dispatcher-rest都加載了相同的servlet。

所以,你不需要兩個條目。只需使用單個條目並將根上下文/映射到servlet。

+0

但一個使用** mvc-dispatcher-servlet.xml **其他** mvc-dispatcher-rest-servlet.xml ** – gstackoverflow

+0

您應該能夠組合xml文件。那是問題嗎? – Kal

+0

我想要2個不同的xml文件。 – gstackoverflow