Я не могу получить spring mvc для разрешения .html файлов вида.
У меня есть следующая структура папок вида:
WEB-INF
`-views
|- home.jsp
`- home.html
У меня есть простой метод hello world controller, который просто печатает сообщение и возвращает имя вида "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 [/spaceships/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>
Я проверил в папке с взорванной войной и могу подтвердить, что присутствуют оба домашних файла.
Кто-нибудь сталкивался с чем-то вроде этого раньше?
Последний фрагмент сообщения консоли:
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";
}
Spring config:
<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>