0

我有一个带有 Spring MVC 的 Web 应用程序。

web.xml

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.do</url-pattern>
    <url-pattern>/companies/*</url-pattern>
</servlet-mapping>

弹簧控制器方法:

class RealmInfoController{

    @ResponseBody
    @RequestMapping(value = {"/companies/{companyId}/realms/{realmName}"})
    public RealmInfo realmInfo(@PathVariable long companyId, @PathVariable String realmName)

处理程序匹配:

http://localhost:6122/context/companies/15877/realms/firstRealm

当服务器获得这个 url 时,spring servlet 被调用。但它不能匹配控制器方法。

但是,如果我将请求映射更改为“/{companyId}/realms/{realmName}”,那么它与控制器方法匹配。但是定义没有'/companies'的url映射并不好。是否可以以某种方式指示 Spring 查找匹配项,包括 servlet 中指定的 url 模式?

谢谢。

4

1 回答 1

1

如果您想在请求映射中使用“公司”,您应该将调度程序 servlet 映射到根:

<url-pattern>/*</url-pattern>
于 2013-02-13T15:42:47.937 回答