Spring请求映射:与url模式匹配
我有一个带有SpringMVC的web应用程序 web.xmlSpring请求映射:与url模式匹配,spring,servlets,spring-mvc,Spring,Servlets,Spring Mvc,我有一个带有SpringMVC的web应用程序 web.xml <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <ser
<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>
处理程序匹配:
http://localhost:6122/context/companies/15877/realms/firstRealm
当服务器获取此url时,将调用spring servlet。但它不能匹配控制器方法
但是如果我将请求映射更改为“/{companyId}/realms/{realmName}”,则它与控制器方法匹配。但是,如果没有“/companys”来定义url映射是不好的。能否以某种方式指示Spring查找匹配项,包括servlet中指定的url模式
谢谢。如果您想在请求映射中使用“公司”,您应该将dispatcher servlet映射到根目录:
<url-pattern>/*</url-pattern>
/*
因为在
路径中有/companys/*
路径,您告诉容器在URL与定义的模式匹配时调用DispatherServlet。因此,在控制器中,@RequestMapping中不能包含/companys/
部分-它已经包含在内了。换句话说,不在@RequestMapping中包含/companys/
部分是在您的情况下执行此操作的正确方法。我无法使用/*或/因为is隐藏了其他servlet和错误页定义。@Rag然后像您以前那样执行。正如我在上面的评论中所写,在@RequestMapping
中不包含/companys/
是您的正确选择。
<url-pattern>/*</url-pattern>