我的Url映射有什么问题?

时间:2010-02-04 00:23:06

标签: java spring java-ee spring-mvc

我正在尝试将几个网址映射到各自的控制器,如下所示:

/index.html => HomeController
/login/index.html = LoginController

我的servlet xml中的映射bean如下所示:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <map>
            <entry key="/index.html">
                <ref bean="homeController" />
            </entry>
            <entry key="/login/index.html">
                <ref bean="loginController" />
            </entry>
        </map>
    </property>
</bean>

我已正确定义了homeControllerloginController的参考bean。

我可以正确加载主页,但是当我尝试导航到/login时,我没有显示loginController指向的jsp,而是获得了tomcat请求的资源不可用错误。这里的语法有问题吗?感谢

这是我的web.xml的一部分:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/index.html</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

1 个答案:

答案 0 :(得分:1)

您的网址映射为/login/index.html,您正在导航至/login

您的网址映射必须与网址匹配。将映射更改为/login

编辑:好的,url-pattern中的web.xml仅捕获索引页面,因此它永远不会向{Spring发送/login的请求。您需要将模式扩展为<url-pattern>/*</url-pattern>(将每个请求发送到Spring),或者添加多个模式以覆盖您希望Spring处理的每个URL。

你的welcome-file-list也有点过分了。你真的需要这些吗?