2016-07-05 4 views
1

Я только начинаю с Spring MVC. Создал шаблон по умолчанию с IntelliJ, и теперь я пытаюсь добавить некоторый контент.Spring MVC, работающий с .html

Расширение по умолчанию для страниц: .jsp, но я хочу изменить свои страницы на .html расширение и не могу понять, как это сделать.

Поэтому у меня есть файл about.jsp, и я хочу изменить его на about.html. Я изменил само имя файла и в файл mvc-dispatcher-servlet.xml я изменил:

<property name="suffix" value=".jsp"/> 

To:

<property name="suffix" value=".html"/> 

После моего изменения я получаю:

05-Jul-2016 15:31 : 25.788 ПРЕДУПРЕЖДЕНИЕ [http-nio-8082-exec-1] org.springframework.web.servlet.PageNotFound.noHandlerFound Не найдено сопоставления для HTTP-запроса с URI [/WEB-INF/view/pages/about.html] в DispatcherServlet с имя 'mvc-dispatcher'

И страница с статусом 404.

Это мое дерево каталогов:

Working dir

MVC-диспетчерская-servlet.xml:

<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.weitz.alex"/> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/view/pages/"/> 
    <property name="suffix" value=".html"/> 
</bean> 

web.xml:

<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

<display-name>Spring MVC Application</display-name> 

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

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 

</servlet-mapping> 

HelloController.java:

package com.weitz.alex; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
@RequestMapping("/") 
public class HelloController { 
    @RequestMapping(method = RequestMethod.GET) 
    public String printWelcome(ModelMap model) { 
     model.addAttribute("message", "Hello world!"); 
     return "about"; 
    } 
} 
+1

это поможет вам. посетите http://stackoverflow.com/questions/15479213/how-to-serve-html-files-with-spring – tinku

ответ

0

удалить эту строку <property name="suffix" value=".html"/> поскольку HTML-страницы являются статическими ручкой это как resource добавить эти строки в configuration.

<mvc:resources mapping="/pages/**" location="/WEB-INF/view/pages/" /> 
<mvc:annotation-driven/> 

нет необходимости обращаться с этим с viewresolver.

и измените инструкцию return на контроллере.

return "redirect:/pages/about.htm";

0

Он смотрит на меня как вы упускаете отображение ресурсов для ваших .html страниц. Попробуйте добавить его в ваш mvc-dispatcher-servlet.xml. Примером может выглядеть следующим образом:

<mvc:resources mapping="/pages/**" location="/WEB-INF/view/pages/" /> 

Для более подробного описания вашей проблемы, вы можете также посмотреть на this ответ, который показывает решение для очень подобной проблемы.


Я также рекомендую вам изменить структуру папок и поместить файлы в папке под названием "/static/resources/" или подобный, потому что ваши .html файлы статичны (ваши файлы JSP не были).

Ваши свойства префикса и суффикса выглядят так, как будто они должны работать нормально.

Смежные вопросы