2016-07-05 7 views
1

私はSpring MVCから始めます。 IntelliJで既定のテンプレートを作成しましたが、今ではいくつかのコンテンツを追加しようとしています。.htmlで動作するSpring MVC

ページのデフォルトの拡張子は.jspですが、ページを.htmlという拡張子に変更したいと考えています。

私はabout.jspファイルを持っていますので、about.htmlに変更したいと思います。 は、私は、ファイル名自体を変更し、ファイルmvc-dispatcher-servlet.xmlに私が変更されました:私の変更後

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

私が手::

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

05 - 7月 - 2016年午後03時31を:25.788 WARNING [http-nio-8082-exec-1] org.springframework.web.servlet.PageNotFound.noHandlerFound DispatcherServletのURI [/WEB-INF/view/pages/about.html]を持つHTTPリクエストのマッピングが見つかりません名前 '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

resourceconfigurationにこれらの行を追加すると、HTMLページが静的なハンドルなので、この行<property name="suffix" value=".html"/>を削除してください。

<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に1つ追加してみてください。 の例では、次のようになります。問題のより詳細な説明については

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

が、あなたはまた、非常に類似した問題の解決策を示してthis答え、見ているかもしれません。


私はまた、あなたのフォルダ構造を変更したり、.htmlファイルは(JSPファイルがありませんでした)静的であるため、"/static/resources/"または類似と呼ばれるフォルダにファイルを配置することをお勧めいたします思います。

プレフィックスとサフィックスのプロパティは、正常に動作するように見えます。

関連する問題