Spring MVC:“DispatcherServlet中没有[...]映射,名称为'dispatcher'”

时间:2011-07-21 23:33:09

标签: model-view-controller spring dispatcher

有人能帮助我吗?在Spring MVC中,我收到了错误

  • 警告:[/TechBooks/details.htm]中没有映射 DispatcherServlet,名称为“dispatcher”

1)首先,在 web.xml 中,我使用标准的DispatcherServlet拦截所有* .htm,这里没什么不寻常的,这是为我预先写的:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

2)在 dispatcher-servlet.xml 中,我使用的是 SimpleUrlHandlerMapping ,这也是标准的并预先写好:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="index.htm">indexController</prop>
        </props>
    </property>
</bean>

3)同样在 dispatcher-servlet.xml 中,我定义了名为“DetailsFormController”的FormController类,它映射到 details.htm

<bean name="/details.htm" class="techbooks.web.DetailsFormController"/>

4)类DetailsFormController是表单的FormController。

package techbooks.web;

public class DetailsFormController extends SimpleFormController {
    ....
    }

但是,当我执行资源 /details.htm 时,我收到上述错误。

  • 警告:[/TechBooks/details.htm]中没有映射 DispatcherServlet,名称为“dispatcher”

任何想法都将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

您可以将bean定义更改为

     <bean name="/TechBooks/details. htm"  class="techbooks.web.DetailsFormController"/>

或者为TechBooks编写url映射处理程序

答案 1 :(得分:0)

我发现了问题所在。

使用SimpleUrlHandlerMapping时,Controller名称必须是 DetailsController ,而不是DetailsFormController,因此它会自动映射到正确的JSP。