如何在Spring MVC Servlet映射URL中使用通配符?
我在web.xml中设置了一个控制器:
<servlet> <servlet-name>controller</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>/console/index</url-pattern>
</servlet-mapping>
在controller-servlet.xml中定义了一个匹配的bean:
<bean name="/console/index" class="com.package.OverviewController"/>
哪个可以正常工作-当我得到“ / appName / console / index”时,它的行为符合我的预期。但是当我将web.xml更改为:
<servlet> <servlet-name>controller</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>/console/*</url-pattern>
</servlet-mapping>
它不再起作用,给了我以下异常:
WARN (org.springframework.web.servlet.PageNotFound) - No mapping for [/appName/console/index] in DispatcherServlet with name 'controller'
所以我的问题是我如何在servlet映射中使用通配符,以便不同的URL都通过单个DispatcherServlet,但可能到达多个控制器bean之一?
仅供参考:我坚持使用Spring 2.0,因为它是政府使用的既定应用程序。
回答:
在中使用通配符时<url-pattern>
,默认情况下,控制器名称对应于模式的通配符部分。
因此,您可以将控制器重命名为/index
,也可以将其alwaysUseFullPath
属性设置HandlerMapping
为true
。
以上是 如何在Spring MVC Servlet映射URL中使用通配符? 的全部内容, 来源链接: utcz.com/qa/403296.html