2014-12-28 3 views
0

Итак, я делаю простой проект для тестирования Spring Framework этим tutorial и сталкиваюсь с проблемой, которую я не могу понять.web.xml не может отметить весну ServletDispatcher правильно

Моя структура проекта:

Project structure

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

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

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.html</url-pattern> 
     <url-pattern>*.htm</url-pattern> 
     <url-pattern>*.json</url-pattern> 
    </servlet-mapping> 

</web-app> 

диспетчеру-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:component-scan base-package="com.itaSS.controller" /> 

</beans> 

HomeController.java:

package com.itaSS.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class HomeController { 

    @RequestMapping("/home") 
    public String home() { 
     return "/WEB-INF/jsp/home.jsp"; 
    } 
} 

Так что, когда после развертывания войны на кот и пытаюсь идти на локальный хост: 8080/home.html я получаю это:

Я уверен, что в web.xml есть какая-то ошибка или Мне что-то пропустило. Буду очень признателен, если кто-то помог мне с этим!

+0

Изменить ваш '@ RequestMapping' для' "/home.html" '. –

+0

Не работает, и я не уверен, что это проблема, так как в web.xml мы имеем сопоставление для * .html. – Arcaniel

+0

Убедитесь, что у вас установлен правильный артефакт. –

ответ

0

Я думаю, что вам не хватает строки в вашем файле dispatcher-servlet.xml.

<mvc:annotation-driven/> 
+0

К сожалению, никакого результата нет, и в учебнике он не использует свой тег. – Arcaniel

0

Вы должны определить ViewResolver в прикладном контексте файла dispatcher-servlet.xml так:

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
+0

К сожалению, результата нет. – Arcaniel

+0

@Arcaniel Добавьте свой контроллер компонента в свой контекст приложения и , как предлагает RE350. –

+0

Я сделал все, все еще не работая. – Arcaniel