如何在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属性设置HandlerMappingtrue

以上是 如何在Spring MVC Servlet映射URL中使用通配符? 的全部内容, 来源链接: utcz.com/qa/403296.html

回到顶部