我有这两个控制器:
@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使用so style(下面):
<servlet-mapping>
<servlet-name>mvc-dispatcher-rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如何使用第一种样式重写它?
答案 0 :(得分:0)
mvc-dispatcher
和mvc-dispatcher-rest
都加载了相同的servlet。
所以,你不需要两个条目。只需使用单个条目并将根上下文/
映射到servlet。