Spring MVC ViewResolver не отображается на файлы HTML
Я не могу получить Spring MVC для разрешения файлов .html просмотра.
У меня есть следующая структура папок:
WEB-INF
`-views
|- home.jsp
`- home.html
У меня есть простой метод контроллера hello world, который просто печатает сообщение и возвращает имя представления «home». У меня есть файл home.jsp, но я хотел бы использовать вместо него home.html.
<!-- Working servlet mapping -->
<servlet-mapping>
<servlet-name>spaceShips</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- working servlet context -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
Когда я нажимаю «Космические корабли / дом», контроллер печатает сообщение «Привет, мир», и я без проблем вижу представление home.jsp.
Проблема в том, когда я меняю суффикс на .html.
После изменения суффикса и перехода к / home контроллер печатает сообщение, однако я вижу ошибку 404 в браузере и следующее в консоли: ПРЕДУПРЕЖДЕНИЕ: не найдено сопоставление для HTTP-запроса с URI [/ Spacehips / WEB-INF / views /home.html]
Чтобы уточнить:
<!-- not working with .html -->
<servlet-mapping>
<servlet-name>spaceShips</servlet-name>
<!-- I have tried /* here as well without success -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- not working with .html-->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="WEB-INF/views/" />
<beans:property name="suffix" value=".html" />
</beans:bean>
Я проверил в развернутой папке war и могу подтвердить, что оба домашних файла присутствуют.
Кто-нибудь сталкивался с чем-то подобным раньше?
Последний кусок консольного сообщения:
INFO: Server startup in 5256 ms
Hello, World!
Jul 27, 2014 12:52:01 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/spaceships/WEB-INF/views/home.html] in DispatcherServlet with name 'spaceShips'
Спасибо за прочтение.
=========== РЕШЕНИЕ ============
Следующая (безобразная) конфигурация решила проблему. Вероятно, есть способы решить эту проблему, но если вы столкнулись с той же проблемой, вы можете составить из этого решение.
Структура папки:
WEB-INF
`-static
|-html
`-home.html
|-css
`-img
Контроллер метод:
@RequestMapping(value = "/home")
public String goHome() {
System.out.println("lolololololol");
return "static/html/home";
}
Весенний конфиг:
<resources mapping="/static/**" location="/WEB-INF/static/" />
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="" />
<beans:property name="suffix" value=".html" />
</beans:bean>