我需要在现有的基于 Spring 的 Web 服务中添加 Restful URL。
每个 URL 都映射得很好,但是在单击诸如 http://localhost:9090/Mercury/rest/invoice之类的 Restful URL 后,所有上下文根路径都更改为http://localhost:9090/Mercury/rest
关键是我想同时使用 restful(/rest) 和 *.do URL 模式
如何在没有 /rest 的情况下设置 contextroot 路径?
web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
控制器
@Controller
@RequestMapping("/rest")
public class InvoiceController {
@RequestMapping(value="/{name}", method=RequestMethod.GET)
public String getInvoice(@PathVariable String name, Model model) {
model.addAttribute("name", name);
return "rest.body";
}